我在應用程序中有以下情況。多個外鍵
稱爲結構的實體,另一個稱爲客戶,另一個稱爲組織。所有這些實體具有可選0->ñ電話,所以,我創建了4桌
Structure
ID_STRUCTURE (PK)
NAME VARCHAR
Customer
ID_CUSTOMER (PK)
RGI VARCHAR
Organization
ID_ORGANIZATION (PK)
ALIAS VARCHAR
Telephone
ID_TELEPHONE
NUMBER
ID_STRUCTURE (FK)
ID_CUSTOMER (FK)
ID_ORGANIZATION (FK)
一次爲期夷鍵總是有一個值,另外兩個總是充滿了空。
寄存器例如:
ID_TELEPHONE NUMBER ID_STRUCTURE ID_COSTUMER ID_ORGANIZATION
1 1234 1 null null
2 4322 null 1 null
3 4333 null null 2
4 4233 null null 2
我的DBA說,這是一種錯誤的做法(這不是歸一化)和sugest N:N表來避免這種nullables FK。但業務規則不允許N:N建議。但是這是關於正常化的討論。
我錯了,這種方法沒有正常化?或者這是正確的,沒有任何問題?
當您有2個客戶使用同一個電話時會發生什麼? –
號碼是唯一的,不會在整個表格中重複。 – jlemes