我需要存儲一些與某些實體相關的審閱標誌。每個審查標誌只能與單個實體屬性組相關聯。例如,表Parents
有一個ParentsStatus
標誌,而表Children
有一組ChildrenStatus
標誌。在數據庫中實現審閱標誌;最佳做法
在目前的設計方案,我有三個表:
ReviewTypes
:商店的標誌和它們與性能。ReviewPositions
:存儲標誌可以具有的值。Reviews
:存儲交易數據,實際評論。它就像UsersToFlags:Flags in a database rows, best practices。
問題是我得到推回來,沒有必要有Reviews
表,它最好只存儲在每個實體上的實際審查數據。例如,向Parents
添加一個額外的列以保存ParentsStatus
。他們認爲這是一個更簡單的解決方案,將數據分離出來只是爲了解決場外情況。
我不喜歡這個想法,因爲這意味着每次我們想添加一個新的審查標誌時,我們需要更新核心實體表來保存該標誌。
空間不是問題。
人們有沒有強烈的意見?
編輯:
此評論適用於三個答案。共識是關係型方法是最好的,但我認爲我需要閱讀更多關於EAV模型,從一些非常基本的閱讀Best beginner resources for understanding the EAV database model?及其相關鏈接,它似乎不是非常直接,我不想挖我自己一個洞。感謝wildplasser。一旦我讀了更多,我會回頭看看。
我不確定我是否理解你的敘述 - 你能否提供一些你希望在每個表格中看到的數據的示例數據(希望在兩個正在考慮的佈局下 - 顯示每種模式的相同數據)。 –
我看不到問題。你所提出的(據我所知)基本上是一個EAV數據節點1,除了來自特殊枚舉類域(ReviewPosistions表)的標誌 – wildplasser
@Damien_The_Unbeliver:如果有幫助,我可以做一些示例數據。帶我幾分鐘。 –