我想弄清楚爲我爲一所學校俱樂部製作的網站設計這些表格的最佳方式。我想設置它,以便每個用戶可以有多個電子郵件,電話號碼和地址綁定到他們的帳戶。爲此,我嘗試將所有這些內容綁定到聯繫人表,並將聯繫人ID存儲在用戶表中作爲外鍵。聯繫人ID也是電子郵件,電話號碼和地址表中的外鍵。這是一個關聯這些表的可行方式,還是應該剪掉中間人(聯繫人表)並將用戶標識存儲在電子郵件,電話號碼和地址表中?MySQL數據庫設計 - 查明表關係的麻煩
萬一我的關係的描述還不夠,這裏是表的ERD:
對不起,這樣的「小白」的問題,它已經有一段時間,因爲我有構建比2個表更復雜的數據庫。任何數據庫設計的一般技巧也非常受歡迎。
最好的辦法是使用表繼承並使其類AbstractAddress的所有亞型。然後您可以輕鬆地查詢用戶所有地址。這就是Hay,Silverston,Fowler和其他人所推薦的。 –
表繼承是Fowler(這裏http://www.martinfowler.com/eaaCatalog/singleTableInheritance.html)討論的軟件設計模式,它與RDBMS模式設計問題並不真正相關 - 而且是一個好的一個在那。 –