1
假設我有一個表:我應該創建一個包含多個候選鍵的表嗎?
MyTable(AttrA, AttrB, AttrC)
Functional dependencies: (AttrA, AttrB) -> AttrC, (AttrA, AttrC) -> AttrB
而且我選擇(AttrA, AttrB)
作爲主鍵。所以這個設計好還是不好?
假設我有一個表:我應該創建一個包含多個候選鍵的表嗎?
MyTable(AttrA, AttrB, AttrC)
Functional dependencies: (AttrA, AttrB) -> AttrC, (AttrA, AttrC) -> AttrB
而且我選擇(AttrA, AttrB)
作爲主鍵。所以這個設計好還是不好?
如果這就是業務情況,並且此解決方案准確地反映了業務情景,那麼對此可能有什麼「壞」?
編輯
我以爲你都知道,這樣的設計可以讓你進入某些「交換」的更新問題,但也許會好些明確說明這一點。當您需要從{A,B,C} {A,C,D}更改爲{A,B,D} {A,C,C}時,這種「交換」更新的最簡單情況。有什麼方法可以解決這些問題取決於您的DBMS。當然,某些更新可能會在實踐中遇到問題的事實並不會使數據庫的邏輯結構本身無效。
道歉只提這只是遲來的。