PowerDesigner中CDM和PDM如何定義外鍵關系


有A、B兩張表(實體),各自有id作為主鍵,兩表是一一對應關系。但略有不同:

A表一條記錄可以對應0或1條B表記錄,B表一條記錄必須對應唯一條A表記錄。

這樣的關系如何在CDM或PDM中定義?

在最后的表結構中,B表中需要自動生成A表id列作為外鍵。

在PDM中,這種關系叫“引用”,實現比較簡單

1、如果B表中沒有外鍵列,則直接使用工具reference,B表中自動生成外鍵列,如下圖:

2、如果B表中已經有列和A中主鍵列相同,則直接使用工具reference,使用B表已有列作為外鍵列,如下圖: 
 
3、 如果B表中已經有列和A中主鍵列不相同,則直接使用工具reference,B表自動生成外鍵列
(1)一種方法是刪除已有列,修改外鍵列名,如下圖:    
(2)第二種方法是,雙擊reference連接線(屬性),選擇外鍵列,選擇確定即可
 
在CDM中,通過關系(Relationship)中的DomainRole來實現
1、選擇面板上的關系圖標,先后連接兩個實體(順序無所謂),生成關系,如下圖:
2、雙擊連線,編輯關系,先在Gneral中更改關系名稱,表明兩表關系
3、選擇“Cardinalities”,定義兩表主從關系
A、選擇“One-One”關系,此時Domain Role選項自動激活。
B、Domain Role概念非常重要,它定義誰是主表,誰是從表,主表ID將進入從表形成外鍵字段。
如果不選擇,兩張表的主鍵將互相進入對方形成外鍵,所以必須設置Domain從主表到從表,如下圖:
C、Dependent(依賴)關系
其次,判斷Dependent(依賴)關系,如果B表dependent於A表,則A的主鍵進入B表做為外鍵后,此外鍵再與B表原主鍵形成新主鍵。
也就是說,B表原主鍵並不能形成完整主鍵,只有加上A表主鍵(外鍵)后才能共同形成主鍵。
如果上面設置主從表關系,則主表dependent選擇自動禁用。
如果在從表上勾選dependent,則主表主鍵在從表中將會顯示為(fk,pk),且從表數量關系自動變為(1,1)如下圖:
所以不能輕易勾選dependent選擇
 
cdm圖:
 
生成的pdm圖:
D、Mandatroy(強制屬性)
A表到B表如果是Mandatroy,說明A表中任何一條記錄都要對應B表一條記錄,也就是說,如果A表中有B表的外鍵列,則該外鍵列不能為空。(1,1)關系
如果不為Mandatroy,就可以是(0,1)對應關系。
E、Cardinality(數量關系)
定義從A到B表或從B到A表是一對一、一對多、多對多關系中的那種。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM