我對數據庫設計相當陌生,但我理解基礎知識。我創建了一個關係數據庫,我想做類似於創建可重用類型或類的東西。例如,假設我有一個Customer
表和一個Item
表。客戶和項目通過標準的一對多關係相關,因此項目有一個名爲CustomerId
的列。如何在關係數據庫中爲自定義類型建模?
我還想爲每個客戶有多個「備註」和每個項目。在一個正常的OOP模型中,我只需創建一個Note
類,並在需要時創建該類的實例。當然,關係數據庫是不同的。我正在考慮製作Note
表,並且我希望客戶和備註之間以及項目和備註之間存在一對多的關係。問題在於Note表必須爲希望使用此「類型」的每個其他表創建一列。 (請參閱下面的示例)
我還認爲可以在Note和Customer/Item(或其他)之間創建一箇中間表。這樣可以避免在每個引用它的表中添加額外的列,所以在添加更多需要註釋的表時,註釋可以保持不變。我在想這是更好的解決方案。 (參見示例)
這種情況通常如何處理?我接近正確嗎?我非常感謝關於如何設計我的數據庫以獲得上述功能的建議。
問:有沒有一個音符不斷應用到多個實體;即相同的筆記能否適用於顧客和物品?或者可以將相同的註釋應用於多個客戶或多個項目? – 2010-10-04 13:28:12
不,每個音符只適用於單個客戶,物品或其他物品。 – 2010-10-04 13:34:58
數據庫設計中的任何內容都不能排除它。您應該將NOTE中的TEXT和DATE字段移動到CustomerNote和ItemNote中,以正確映射每個筆記最多可以與一個Customer或Item關聯。結果,注表將被完全消除。 – 2010-10-04 16:15:40