CDM设计后续
在上一篇文章中,有一点给忘记了,在CDM设计窗口中,如果在设计中,实体entity越来越多,实体entity间的关系也会越来越复杂,像蜘蛛网一样难以分辨,从可视化和可维护性上面讲,这是不利的,有没有办法解决这个问题呢。办法是有的,请看下图:
图-1
在图中,点击鼠标右键,选择新增,在新增下选择第一项Conceptual Diagram,这样就可以根据业务逻辑来建立一个子CDM,在打开的窗口中给子CDM命名,添加code和备注。
图-2
如果想让每一个子CDM排列有序,则可以在名称前面增加数字来进行排序,如下图所示:
图-3
对于实体Entity,关联关系Relationships,还有Association及Association Link也可以使用同样的命名规则,根据业务逻辑在名字前添加数字,进行归类存放,方便后续的审核确认。
*PDM介绍*
PDM是PhysicalDataMode的英文简称,物理数据模型的意思。PDM可以直接创建,也可以从CDM之间生成,还可以从已有的PDM再次生成PDM。
在PDM中可以对CDM生成的表结构,做进一步的核对、确认一下,这是不是就是自己想要的数据结构,需要注意的是CDM中的关联association会直接生成对应的表table,还有一点需要注意,如果一个表中有两个来自同一个表的外键,外键的命名还需要人为的手动修改一下。
*CDM转PDM,手把手实际操作*
第一步,选中即将转化为PDM的CDM设计稿上,在工具栏上,选择Generate Physical Data Model,如下图所示:
图-4
第二步,在打开的窗口,进行PDM相关参数的设置,在第一个选项卡General,数据库的选择非常重要,要根据需要的数据类型,来选择生成模型对应的数据库类型。
图-5
第三步,数据库表前缀的设置,在上图中,点开第二个选项卡detail,可以看到一个table prefix,这个便是表前缀的设置。
图-6
第四步,切换到第四个选项卡Selection,对需要生成PDM的实体,做一个选择,如果不需要,就去掉实体前复选框中的勾选,如果全部需要,这一步可以跳过。
图-7
最后,点击确定按钮,根据CDM的大小,等待个几秒钟,就可以看到已生成PDM的样子了,如下图:
图-8
只需三步,CDM就转换成PDM了,非常简单吧。
再来确认一下,学生和课程关系表,生成的对不对,打开Tables下的学生和课程关系表,表的前缀是有的,这个是对的。
图-9
再确认一下,表中的列,喔,好吧,学生和课程关联关系时,错把班级和这张表关联了,真是太粗心,怎么办,再回到CDM设计中,把上面的相关步骤再走一遍喽!
图-10
回到CDM设计界面,在删除的确认对话框中,有个选项需要注意一下
图-11
在删除对话框中,默认的选项Delete objects,会连带删除掉左边列表中的关系或实体,下面的选项则只会删除右边的关系或实体。在操作实体时,如果不想删除左边菜单栏中的实体,则选择Delete symbols only选项。确定要删除哪些项目后,按下OK按钮确认删除操作。
图-12
好吧,设计真是个细心活,最后再把PDM生成一下,生成的结果如下图:
图-13
再把每个表中的列信息核对一遍,这下,学生和课程关系表中的列信息都是对的,课程id和学生id分别作为外键,插入到这张表中,在此表中,课程id和学生id构成了联合主键。
图-14
在学生表中,班级也是作为外键插入到学生表中的,如下图所示:
图-15
*PDM生成sql语句*
第一步,鼠标焦点落在需要生成PDM的设计稿上,然后就可以在菜单栏看到数据库这个选项,点击数据库,选择Generate Database选项
图-16
第二步,在打开的Database Generation窗口中,设置文件需要保存的路径,文件名称,sql语句的组成。
图-17
第三步,在后面几个选项卡中,还有其他的选项,在Preview选项卡中,还可以预览到sql语句的效果,如下图所示:
图-18
最后点击确定按钮,然后到文件保存的位置,查看sql语句的文档即可,文档中的sql语句和预览preview中的是一样的。
从以上生成sql语句的过程来看,这一步还算是简单的,只需三步走。下面的一步就比较复杂啦。
*PDM生成word可视化文档*
第一步,鼠标焦点落在需要需要生成word可视化文档的PDM设计稿上,然后点击工具栏中的报告,如果是第一次使用,则需要打开Report Templates窗口,首先设计word导出模板,如下图所示:
图-19
图-20
第二步,在打开的List of Report Templates模板中,点击新建模板图表后,会出现下面窗口Report Template Type,通过这个窗口给模板命名,选择生成的语言类型,选中的数据模板类型,如下图所示,最后按OK按钮确定。
图-21
第三步,模板设计细节。点击确认按钮后会出现下面操作窗口,模板内容的选择。在这一步,需要确定将要输出的word文档,都有哪些内容展示,table的列表清单,table表头信息,table下的每一列,每一列的数据类型及备注等等。
图-22
拖两个title到文档下,第一个title下面展示table清单,把list of tables拖到第一个title下,这时已经完成了模板的头部设计。
图-23
接下来,在Available items列表下,找到Table文件夹,打开Table文件夹,把Table Card拖到第二个title下,再找到List of column,把这个也拖到第二个title下,见图-25,把多余的删掉。
图-24
这个步骤考验拖拖拉拉的能力,需要多点耐心,Java程序员还真不习惯这样拖拖拉拉的。
图-25
最后按保存按钮,在弹框里选择合适的保存路径。
图-26
行到此处,模板的设计就告一个段落了,点击右上角的关闭按钮,关闭这个设计模板的窗口,接下来检验这个模板是不是我们想要的。
图-27
第四步,模板验证。鼠标焦点落在要导出word模板的PDM设计稿上,打开图-19的对话框,打开Generate Report窗口,在打开的窗口中,选择刚刚设计的模板,导出文档的后缀,语言类型及存储路径。
图-28
第五步,确认输出。按下OK按钮确认后,会弹出对话框,点击是,打开已经生成好的word文档,预览一下格式
图-29
这份看起来高大上的文档,还有些不足,行之间缺少下划线,列表清单缺少备注等等。
图-30
第六步,模板设计再确认。从模板保存的路径,打开模板,选择模板中的项目,点击鼠标右键,分别对format和layout进行设计,format主要是对格式的设置,layout是对数据项展示的设置,根据需要进行设置,设置好后保存。
图-31
图-32
图-33
最后,再次生成word文档,打开文档,是不是觉得很完美呢,感觉不完美继续修改模板吧,哈哈。
图-34
最后总结
CDM、PDM是PowerDeginer工具做数据库设计时最常使用的,PowerDeginer里面的功能还有很多,都待研究。
使用了PowerDeginer这款工具后,有没有觉得做数据库设计高效了很多呢,当然,做设计是细心活,粗心时还需要多review几次。