Database-Design
一個且只有一個關係 - ER 圖到關係模式
作為我的 CS 學習的一部分,我將把這個學期作為數據庫課程的一部分。
本週我們開始研究 ER 圖的主題,我覺得這有點令人困惑。
我對上面的圖片有一些不確定性(注意:圓形箭頭表示“只有一個”——也就是說,B 中的每個主題都可以而且必須指向 A 中的一個主題,反之亦然)。
我必須為此圖創建一個合適的關係模式,這是我的嘗試:
- A(a, b , c, d) (b是關鍵)
- B( e , f) ( e是關鍵)
這是我的不確定性:
R(b, e) - 無論我從這些外鍵中創建哪個鍵,都不會保留“唯一一個”約束。
如何創建此約束所在的架構?
如果你有“最多一個”箭頭,而不是完全一樣,那會怎樣?
答案將如何變化?
表 a 應該引用(外鍵) b,反之亦然。在外鍵上,您創建一個唯一索引,因此您擁有 1 對 1 的關係。
以下數據尊重這些限制,但可能不是您想要的。
Tab a Tab b PK FK PK FK 1 a a 2 2 b b 1
所以你可能需要更加嚴格,在主鍵列上放一個外鍵,強制兩個表有相同的主鍵。
“最多一個”:允許該列為空。
如下所示,對稱的一對一關係不能使用外鍵強制執行(除非添加了邏輯,例如觸發器)。
Tab a Tab b PK FK PK FK 1 b a 2 2 a b 1