使用PowerDesigner做数据库设计(二)

使用PowerDesigner做数据库设计(二)

CDM设计后续

在上一篇文章中,有一点给忘记了,在CDM设计窗口中,如果在设计中,实体entity越来越多,实体entity间的关系也会越来越复杂,像蜘蛛网一样难以分辨,从可视化和可维护性上面讲,这是不利的 j _ s e 8,有没有办法解决这个问题呢。办法是有的,请看下图:

图-1

在图中,点击鼠标右键,选择新增,在新增下选择第一项t z 2Conceptual Diagram,这样. M w 5 [ eI * v Q 9 j g可以根据业务逻辑来建立一个子CDM,x d e * | { T在打开的窗口中给子CDM命名,% x [添加code和备注。

图-2

如果想让每一个子CDM排列有序,则可以在名称+ } J G : } g _ K前面增加数字来进行排序. w O E,如下0 3 m d ; 7 { p图所示:

图-3

对于实体Entity,关联关系Relationships,还有Association及Association Link也可以使用同/ k 4 K A y g样的命名规则,根据业务逻辑在名字前添加数字,进行归类存放,方便后续的审核确认。

                             *PDM介绍*

PDM是PhysicalDataMode的英文简称,物理数据模型的意思。PDM可以直接创建,也可以从C L x x ECDM之间生成,还可以从已有的PDM再次生成PDM。

在PDM中可以对CDM生成的表结构,做进一步的核对、确认一下,这是不是就是自己想要的数据结构,需要注意的是CDM中的关联association会直接生成对应的表table,还有一点需要注意,如果一个表中有两个来自同一个表的外键,外键的命名还需要人为的手动修改一下。

                   *CDM转PDM,手把手实际操作*

第一步,选中即将转化为PDM的CDM设计稿上,在工具栏上,选择Generate Physical Data Model,如下图所示:

图-4

第二步,在打开的窗口,进行PDe S E 6 3 5M相关参数的设置,在第一个{ W ?选项卡Gene* ) Y @ral,数据库的选择非常重要,要根| , 3 j据需要的数据类型,来选择生成模型对应的数据库类型。

图-5

第三步,数据} ? u库表前缀的设置,在上图中,点开第二个选项卡detail,可以看到一个table prefix,这个便是表前缀的设置。

图-6

第四步,切换到第四个选项卡Selec% g Rtion,对需要生成PDM的实体,做一个选择,如Y * z x T a果不需要,就去掉实体前复选框中的勾选,如果全部需要,这一步可以跳过。

图-71 m o $

最后,点击确定按钮,根据CDM的大小,等待个几秒钟,就可以看到已生成P5 F 8 i ` DM的样子了B f 5 2 g 7 q |,如下图:

图-& S } Y8

只需三步,CDM就转换成PDM了,非常简单吧。

再来确认一下,学生和课程关系表,生成的对不对[ P M { . ! o,打开Tables下的学生和~ z H @ .课程关系表,表的前缀是有的,这个是对的。

图-9

再确认一下,表中的列,喔,好吧,学生和课程关联关系时,错把班级] / 9 r ] z X和这张表关联了,真是太粗心,怎么办,再回到CDM设计中,把上面的相关步骤再走一遍喽!

图-10

回到CDM设计界面,在删除的确认对话框中,有个选项需要注, F ( 2 F + X意一下

图-11

在删除对话框中,默认的选项Delete objects,会连带删除掉左边列- D 8 N 9 n z= | $中的关系或实体,下面的k R W n _ ) b y选项则只会删除右边的关系或实体。在操作实体时,如果不想删除左边菜单~ } + 3 / G u . g栏中的实体,则选择DeleteS / U b symg $ L (bols only选项。确定要删除哪些项目后,按下OK按钮确认删除操作。

图-12

好吧,设计真是个细心活,最后再把PDM生成一下,生成的结果如下图:

图-1) 9 d 23

再把每个表中的列信息核对一w m w 9 @ t @遍,这下,学生和课程关系表中的列信息都是对的,课程id和? 6 t + M , w学生id分别作为外键,插入g ! k b到这张表中,在此表中,课! P T d _程id和学生id构成了联合主键。

I i 2 O z R G . f-14

在学生表中,班级也是作为外键插入y S 7 w T到学生表中的,如下图所示:

图-15

                     *PDM生成sql语句*

第一步,鼠标焦点落在需要生成PDM的设计稿上,然后就可以在菜单栏看到数据库这个选项,点击数据库,选择Gen[ , T F U . Yerate DatabasL ) g 2e选项

图-16

第二步,在打开的Database Generation窗口中,设置文件需要保存的路径,文件名称,sql语句的组成。

图-17

第三步,在后面几个选项卡中,还有其他的选项,在Preview选项卡中,还可以预览到sql$ v #语句的效果,如下图所示:

图-3 ] 7 # % l s J 18

最后点击确定按钮,然后到文件保存的位置,查看sql语句的文档即可,文档中的sql语句和预览preview中的是一样的。

从以上生成sql语句的过程来看1 G , 3 Y v C g B,这一步还算是简单的,只需三步走。下面的一步就比较复B Q G a _ 7 I杂啦。

                       *PDM生成word可视化文档*

第一步,鼠标焦点落在需要需要生成word可视t x O 6 S化文档的PDM设计稿上,然后点击工具栏中的报告,如果是第一q R 6 =次使用,则需要打开Report Templates窗口,首先设计word导出模板,如下图所示:

图-19

图-20

第二步,在打开的List of Report Templates模板中,点击新建模板图表后,会出现下面窗口Report Templ1 j p qate Type,通过这个窗口给模板命名,选择生成的语言类型,选中的数据模板类型,如下图所示,最后按OK按钮确定。

图-21

第三步,模板设计细节。点击确认按钮后会出现下面操作窗口,模板内m j c s b P t容的选择K A X o e。在这一步P B f N 2 b b #p p V A需要确定将要输出的word文档,都有哪些内容展示,tableN V Y W u的列表清单,table表头信息,table下的每一列,每一列的数据类型及备注等等。

图-22

拖两个title到文档下,第一个title下面展示table清单,把list of tables拖到第一个title下,这时已经完成了模板的头部设计。

图-23

接下来,在Available items列表下,找到Table文件夹,打开Table文件夹,把Table Card拖到第二个title下,再找到List of column,把这个也拖到第二个title下,见图-S % : S | S l H X25,把多余的删掉。

图-24

这个步骤考验拖拖拉拉的能力,需要多点耐心,Java程序员还真不习惯这样拖拖拉拉的。

图-25

最后按保存按钮,在弹框里选择合适的保存路径。

图-26

行到此处,模板的设计就告一个段落了,点击右上角的关闭按钮,关闭这个设计模板的窗口,接下来检验这个模板是不是我们想要的。

图-27

第四步,模板验证。鼠标焦点落在要导出word模板的PDM设计稿上,打开图-19的对话框,打开Generate Repor6 v A vt窗口,在打开的窗口中,选择刚刚设计的模板,导出文档的后缀,语言类型及e X D l T存储路径。

图-28

第五步,确认输出。按下OK按钮确认后,会弹出对话框,点击是,打开已经生成好的word文档,预览一下格式

图-29

这份看起来高大上的文档,还有些不足,行之间缺少下划线,列表清单Z B , o 9 9 - ! 6缺少备注等等。

图-: N x37 d | n p a ! r0

第六步,模板设计再确认4 . X ` G 4 4 8 D。从模板保存的路径,打开模板,选择模板中的项目,点l t 5 ` &击鼠标右键,分别对format和layout进行设计,format主要, E K / c g ! O是对格式的设置,layout是对数据项展示的设置,根据需要进行设置,设置好后保存。

图-31

图-32

图-33

最后,再次p z |生成word文档,打开文档,是不是觉得很完美呢,感觉不完美继续修改模板吧,哈哈。

h q 0 , M O L-34

                           最后总结

CDM、PDM是Powerd q # G ? w N [ qDeginer工具做数据库设计时最常使用的,PowerDeginer里面的功能还有& s b * R很& y , | = 3 ` 多,都j R ~ g G待研究。

使用了PowerDeginer这款工具后,有没有e 1 Z x : N J # K觉得做数据库设计高效了很多呢,当然,做设计是细心活,粗心时还需要多review几次。