工具—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.這時再生成語句就加上外鍵約束了。
但願對你們能有所幫助