PowerDesigner 15 的版本,工具栏上的Inheritance图标默认是禁用的,如下图所示:

工具栏,图标,PowerDesigner

取消禁用的方法如下:

Tools->Model Options->Model Settings->Notation 设为“E/R+Merise”就行了,具体操作步骤如下图所示:

工具栏,图标,PowerDesigner

工具栏,图标,PowerDesigner

改成“E/R+Merise”就行了

工具栏,图标,PowerDesigner

此时工具栏就可以使用那三个被禁用掉的图标了,如下图所示:

工具栏,图标,PowerDesigner

PowerDesigner 快捷工具栏 palette 不见了,怎么重新打开,找回来呢?

工具栏,图标,PowerDesigner

Tools(工具栏)-> Customize Toolbars(自定义工具栏)-> Palette(调色板)勾选。

好了Palette又回来了。

如何取消Name跟Code的关联呢?

在设计PDM文件的时候,设计一张表,在填写栏位的时候,如果我们输入Name,Code会跟着变化。

这个完全是西方人的习惯,因为他们的Name和Code都是E文,所以不会出现什么问题。

但是,我们使用的时候,就会很不习惯,Name应该是中文名字,Code才是资料库的实际字段名。

Tools -> General Options -> Dialog 把 Name to Code mirroring 勾掉。

为何检测出现 Reference constraint name maximum length is limited to 30 characters Key constraint name maximum length is limited to 30 characters 的警告

导致生成建表SQL时通不过,细究原因原来是默认设置的问题,改下就可以了

调整以下参数: 

Database->Edit current DBMS 数据库类型::Script\Objects\MaxConstLen value->255 
Database->Edit current DBMS 数据库类型::Script\Objects\Table\Maxlen value->255 
Database->Edit current DBMS 数据库类型::Script\Objects\Column\Maxlen value->255 字串7 

但是要注意的是,表名、列名、主键等不要超过30个字符,否则Oracle不认。

如何将Name的值自动设为Comment(适合国人)

对于字段名

Oracle版:

Database->Edit current DBMS 数据库类型::Script\Objects\Column\ColumnComment value->

Comment on column [%QUALIFIER]%TABLE%.%COLUMN% is %q:Name%

MySql版:

Database->Edit current DBMS 数据库类型::Script\Objects\Column\Add value->

%20:COLUMN% [%National%?national ]%DATATYPE%[%Unsigned%? unsigned][%ZeroFill%? zerofill][ [.O:[character set][charset]] %CharSet%][.Z:[ %NOTNULL%][%IDENTITY%? auto_increment:[ default %DEFAULT%]][ comment %.q:Name%]]

同理对于表名也是

Database->Edit current DBMS 数据库类型::Script\Objects\Table\TableComment value->

Comment on table [%QUALIFIER]%TABLE% is %q:Name%

这里要特别注意一点,在PDM模型中,Comment必须填入值(随便写点什么,反正不会有影响),生成的SQL文才会有Comment。

建立索引要注意的地方

Oracle中主键会自动建立索引,因此无需再手动建立。

生成SQL脚本

Database -> Generate Database

选好目录跟文件名称点确定就可以了。

生成图片

将数据库设计保存成一张图片。

先在PDM中选中所有的东西,Ctrl+A

Edit -> Export Image

选择保存的类型就可以了。

根据SQL生成JAVA对象要注意的地方

自增主键例如ID,长度最好设置为18位,对应java中的long,超过18位就需要使用BigDecimal