PowerDesigner修改建库脚本的方法,尤其是外键生成方式

时间:2022-08-31 18:13:36
 PowerDesign的使用主要是DBMS的配置 
1、修改建表脚本生成规则。如果每个表格都有相同的字段,可以如下修改: 
Database -> Edit Current DBMS 展开 Script -> Object -> Table -> Create 见右下的Value值,可以直接修改如下:/* tablename: %TNAME% */ 
create table [%QUALIFIER%]%TABLE% ( 
%TABLDEFN% 
ts char(19) null default convert(char(19),getdate(),20), 
dr smallint null default 0 
) 
[%OPTIONS%] 

其中的 ts、dr 两列会在生成SQL脚本的时候自动的插入每个表格中,其中的%TNAME% 变量是给每个表格的SQL添加一个该表的Name值注释。 

2、修改字段生成规则。要给每个字段都添加一个注释的话,同一窗口中展开 Script -> Object -> Column -> Add 的 Value修改为: 

%20:COLUMN% [%COMPUTE%?AS (%COMPUTE%):%20:DATATYPE% [%IDENTITY%?%IDENTITY%:[%NULL%][%NOTNULL%]][ default %DEFAULT%] 
[[constraint %CONSTNAME%] check (%CONSTRAINT%)]]/*%COLNNAME%*/ 

其中的%COLNNAME%就是列的Name值(可以是中文) 

3、修改外键命名规则。选择Database—>Edit Current DBMS 
选择Scripts-》Objects-》Reference-》ConstName 
可以发现右侧的Value为: 

FK_%.U8:CHILD%_%.U9:REFR%_%.U8:PARENT% 

可见,该命名方法是:'FK_'+8位子表名+9位Reference名+8位父表名,你可以根据这中模式自定义为: 

FK_%.U7:CHILD%_RELATIONS_%.U7:PARENT%, 

可以使FK名称变为FK_TABLE_2_RELATIONS_TABLE_1 
掌握这种方法后就可以按照自己的想法修改了 

生成建库脚本SQL文件中的表头注释很讨厌,可以在 Databse -> Generate Database (Ctrl+G)窗口中,选择Options卡片,去掉Usage的Title钩选项即可。 

4、添加外键 
Model -> References新建一条外键后,双击进入外键属性,在“Joins”卡片中可以选择子表的外键字段 

5、去掉生成的SQL脚本双引号的问题:ORACLE 8I2::Script\Sql\Format\CaseSensitivityUsingQuote改成No,默认是Yes所以会有双引号。 

在修改name的时候,code的值将跟着变动,很不方便。修改方法:PowerDesign中的选项菜单里修改,在[Tool]-->[General Options]->[Dialog]->[Operating modes]->[Name to Code mirroring],这里默认是让名称和代码同步,将前面的复选框去掉就行了。
6、有关Powerdesgner数据模型设计中,属性名同名问题的解决方法 
PowerDesigner默认在CDM中不能存在相同名称的实体属性,这也是考虑到可能产生的一些如主键外键等名称冲突问题,但当我们进行实际数据库设计时,可能会多次使用相同数据项(DataItem)便于理解各实体。为此需要对更改PowerDesigner相关设置。软件默认为DataItem不能重复使用(重名),需要进行以下操作: 

选择Tools->Model Options,在Model Setting设置目录中,将Data Item下的Unique Code取消选中即可,系统默认将Unique Code和Allow Reuse均选中。 

同时该设置均是面向特定模型的,即针对当前模型有效,若希望在其它模型中也有此命名设置,则需要重新进行设置。不过在Check Model时,如果选择全部Check,则依旧会报DataItem重名的错误信息,这时需要我们在人为检查确认数据项无误时,可以在选择不对DataItem不检查,各种数据类型对应匹配(这里只给出与SQL Server中的常用对应类型,其它DBMS可以使用类似处理)