Powerdesigner技巧(一) :活用domain,使表字段数据类型一致
Powerdesigner
1 表设计
1.1 命名规范
普通表:【子模块名_表名】
例子:SM_RESOURCE 表示“系统管理模块资源表”
关系表:【子模块名_REL_表A名_表B名】
例子:SM_REL_ROLE_RESOURCE 表示“系统管理模块角色与资源关系表”
主键:
优先 模式1:普通表【表名_ID】
关系表【REL_ID】
模式2:全部用【ID】表示
1.2 字段规范
建立Domain来定义常用数据类型。
Powerdesigner中domain如同自定义数据类型,比如定义一个domain表示表标识,如下:
1.2.1 【例】domain
(图1.2.1)
如上图,一个表示表标识的domain就建立好了,我们把这个domain投入使用,如下图:
(图2)
我们打开一个表,设置主键的attributes,在Domain中选择刚刚我们创建的“标识ID”,这样,主键的Data Type就和domain中定义的一致了为Number (8)。如果我们把所有的表中相同的字段都用domain定意数据类型,那么我们以后只要有修改,不用逐一在每个表中修改,而只要改Domain就可以达到“牵一发动全身”了。
2 模型转换流程
2.1 概念模型(CDM) To 物理模型(PDM)
2.1.1 模型合并
如果当前CDM已经生成了PDM,那么再次生成PDM的时候,会有个模型更改合并界面。
我们可以对哪些新生成的PDM和以生成的PDM的不一致的元素,在截面上会有感叹号提示,如图:
(图3)
一般来说,选择全部修改。当然也可以根据具体情况选择局部更新。
如上图红色标记处选择全选。
2.2 物理模型(PDM) To SQLScript
2.2.1 PDM TO sqlscript 问题总结
2.2.1.1 Constraint name uniqueness
这个问题是因为powerdesigner从CDM转PDM时,生成的Constraint name 重复导致的。
原因:Constraint name必须是一定长度之内的,而powerdesigner从CDM转PDM时,Constraint name的命名规则是【FK_表A名(简写)_Reference名_表B名(简写)】
如:FK_SM_REL_O_FK_REGION_SM_REGIO
(图4)