我頭腦風暴如何重組數據庫的聯繫信息。如您所知,電話號碼可以鏈接到一個人(手機),一個家庭(家庭電話),一個組織/企業等。邏輯上,電話號碼是電話號碼是電話號碼。手機號碼和家庭電話號碼之間沒有真正的區別。一個人可以有多部手機,一個家庭可以有多條電話線,而一個組織可以有許多電話線。如何確保記錄只能是一個記錄的孩子,當它可以是多個表格的孩子時?
通常,在設計表格時,這意味着應該有一個電話號碼錶。它應該以一對多的方式與個人或家庭或組織聯繫起來。問題是,有人會如何強制實施:電話記錄只屬於單親記錄,無論該記錄是人記錄還是家庭記錄還是組織記錄?
在我看來,我發現的唯一兩種方法是kludges。我想要一個優雅的解決方案
第一個是創建3個表格,PersonPhones,FamilyPhones和OrganizationPhones。然後你有3個表,其任務是存儲基本相同的數據。
第二個是創建一個奇怪結構的單個電話表。它將具有電話號碼,用於個人ID的可空字段,用於家庭ID的第三字段以及用於組織Id的第三字段。然後添加一個約束,強制這3箇中的2個爲NULL。
任何想法?
抱歉,這不是一個好主意 - 數據庫管理系統將無法執行外鍵。 –