1,用powerdesigner 进行数据建模时如果允许重复使用某一字段需进行如下配置
工具—Model Options—DataItem(对话框右下角)将unique code和 Allow reuse 前面复选框的勾统统去掉,这样就可以在多个表中重复使用某一字段了。
注意: 如果勾选allow reuse的话, 多表重复使用某一字段时,name的值是一致的,在某些情况下,这样非常不方便,因为在不同表中字段有不同的含义。
出现Entity Attribute name uniqueness问题:
选择"Tools -> Model Options"后 "Allow reuse"复选框,建议把这个钩也去掉
Tool->check model...去掉Entity Attribute下
Entity Attribute name uniqueness 和 Entity Attribute code uniqueness
2,powerdesigner中设置code的值不随name值的改变而改变(即name和code的连动问题)
Name 和Code 的右侧都有一个按钮“ =” ,如果需要不同步的话,把这个按钮弹起来就可以了。
设置方法:Tools->General Options->Dialog->Name to Code Mirroring ( 前面的勾去掉 即可) 。
3,给MySQL列设置unique属性
1)在物理模型下,进入某表的Keys选项卡,添加一行name,这个名字随便起,但是和表里属性名不要重复即可;
2)点击左上角表属性
3)然后选择Column选项卡
4)然后添加属性;
5)然后进入MySql选项卡,选Unique Key
4.设置某一列设置自增;
进入物理模型,选择Columns->选列,点左上角属性
然后点选右下角Identity
5.Mysql添加字符集支持
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,添加列选择某一列即可
6.设置唯一属性
唯一约束与创建唯一索引基本上是一回事,因为在创建唯一约束的时候,系统会创建对应的一个唯一索引,通过唯一索引来实现约束。不过唯一约束更直观的表达了对应列的唯一性,使得对应索引的目的更加清晰,所以一般建议创建唯一约束而不是只创建唯一索引。
在PD中创建唯一约束的操作,以教室表来说,RoomID是主键,必然是唯一的,RoomName如果我们也要去必须是唯一的,那么具体操作如下:
在PD的模型设计面板中,双击“教室”表,打开属性窗口,切换到"”Keys”选项卡,可以看到里面有一行数据PK_ClassRoom,这是主键约束。添加一行数据,命名为UQ_RoomName,不能将右边的“P”列选上,然后单击工具栏的“属性”按钮,弹出UQ_RoomName的属性窗口,切换到列选项卡,单击增加列按钮,选择将RoomName列添加到其中,然后单击确定即可完成唯一约束的添加。
6.设置外键
在物理模型下,右边工具栏中的reference设置。
关于PowerDesigner15不能从PDM图生成MS SQL2005/2008外键约束的问题
今天在用powerDesigner 的时候,从PDM图生sql语句的时候,总不能生成外键约束,很奇怪,PDM图上面也都有外键字段啊。就BAIDU了一下找到了解决方案:
在菜单栏里点DATABASE ,有个Change current DBMS 把版本换做2000的,然后在菜单栏里点MODEL,里面有个References,把里面各项的Implementation 的属性改为Declarative,然后再用上个步骤,把DBMS版本切换回来,切换成2005或者2008.这时再生成语句就加上外键约束了。
7.添加注释
希望对大家能有所帮助