有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表是一對一、一對多、多對多關系中的那種。