工具—Model Options—DataItem(对话框右下角)将unique code和 Allow reuse 前面复选框的勾通通去掉,这样就能够在多个表中重复使用某一字段了。sql
注意: 若是勾选allow reuse的话, 多表重复使用某一字段时,name的值是一致的,在某些状况下,这样很是不方便,由于在不一样表中字段有不一样的含义。工具
出现Entity Attribute name uniqueness问题:lua
选择"Tools -> Model Options"后 "Allow reuse"复选框,建议把这个钩也去掉spa
Tool->check model...去掉Entity Attribute下.net
Entity Attribute name uniqueness 和 Entity Attribute code uniqueness设计
Name 和Code 的右侧都有一个按钮“ =” ,若是须要不一样步的话,把这个按钮弹起来就能够了。code
设置方法:Tools->General Options->Dialog->Name to Code Mirroring ( 前面的勾去掉 便可) 。blog
1)在物理模型下,进入某表的Keys选项卡,添加一行name,这个名字随便起,可是和表里属性名不要重复便可;索引
2)点击左上角表属性ip
3)而后选择Column选项卡
4)而后添加属性;
5)而后进入MySql选项卡,选Unique Key
进入物理模型,选择Columns->选列,点左上角属性
而后点选右下角Identity
Database->Edit current Database
而后选MYSQL50::Script/Objects/Table/Options
在options末尾添加:
ENGINE = %s : list = BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MYISAM | MYISAM, default = InnoDB
DEFAULT CHARACTER SET = %s : list = utf8 | gbk, default = utf8
COLLATE = %s : list = utf8_bin | utf8_general_ci | gbk_bin | gbk_chinese_ci, default = utf8_bin
点击应用,而后回到物理模型:
6.建立惟一索引
进入物理模型,打开table 属性,选择indexes,添加一列如index_mail,选择U属性
双击新建列,进入columns,添加列选择某一列便可
惟一约束与建立惟一索引基本上是一回事,由于在建立惟一约束的时候,系统会建立对应的一个惟一索引,经过惟一索引来实现约束。不过惟一约束更直观的表达了对应列的惟一性,使得对应索引的目的更加清晰,因此通常建议建立惟一约束而不是只建立惟一索引。
在PD中建立惟一约束的操做,以教室表来讲,RoomID是主键,必然是惟一的,RoomName若是咱们也要去必须是惟一的,那么具体操做以下:
在PD的模型设计面板中,双击“教室”表,打开属性窗口,切换到"”Keys”选项卡,能够看到里面有一行数据PK_ClassRoom,这是主键约束。添加一行数据,命名为UQ_RoomName,不能将右边的“P”列选上,而后单击工具栏的“属性”按钮,弹出UQ_RoomName的属性窗口,切换到列选项卡,单击增长列按钮,选择将RoomName列添加到其中,而后单击肯定便可完成惟一约束的添加。
在物理模型下,右边工具栏中的reference设置。
关于PowerDesigner15不能从PDM图生成MS SQL2005/2008外键约束的问题
今天在用powerDesigner 的时候,从PDM图生sql语句的时候,总不能生成外键约束,很奇怪,PDM图上面也都有外键字段啊。就BAIDU了一下找到了解决方案:
在菜单栏里点DATABASE ,有个Change current DBMS 把版本换作2000的,而后在菜单栏里点MODEL,里面有个References,把里面各项的Implementation 的属性改成Declarative,而后再用上个步骤,把DBMS版本切换回来,切换成2005或者2008.这时再生成语句就加上外键约束了。
但愿对你们能有所帮助