假設您想爲某些Web應用程序構建數據庫。這個數據庫已經包含很多表格,你可能不得不在將來擴展它。關係數據庫中「評論」表的最佳實踐
此外,您希望最終用戶能夠評論數據庫中的任何類型的對象。
我想找到一個解決方案,這將是足夠通用的,這樣我就不必每次在數據庫中添加一個新表時擴展它。
我想到了以下幾點:
表名:發表評論
列:
- ID:評論的ID
- USER_ID:的的ID用戶發表評論
- object_table_name:選項卡其中註釋對象爲
- object_id:object_table_name表中已註釋對象的ID。
- 文本:文本
- 日期:依據
此表之類的解決我的問題,是困擾我的唯一的事情是,它的關係方面是比較薄弱(我不能讓例如,object_id是一個外鍵)。 另外如果有一天我需要重新命名一個表,我將不得不改變評論表中的所有有關條目。
您對這個解決方案有什麼看法?有設計模式可以幫助我嗎?
謝謝.-
你需要保留這些評論的歷史記錄嗎?我想不出創建任何單獨的評論表的另一個主要原因。 – jwiscarson 2010-11-03 16:38:20
每對(object_table_name,object_id)對可以有多個註釋嗎?如果它始終是1:1,那麼只需將註釋作爲額外列包含在object_table_name本身上。如果是1:N,那麼需要一個單獨的表格。 – 2010-11-03 20:41:40