我正在爲我正在開發的一個新項目構建數據模型。這個數據模型的一部分涉及具有「標誌」的實體。數據庫理論:有一個可應用於許多實體的「標誌」表的最佳方式?
一個標誌只是一個布爾值 - 實體有標誌或沒有標誌。爲此,我有一個名爲「標誌」的表,它具有一個ID,一個字符串名稱和一個描述。 (標誌示例可能是「正在激活」或「應該顯示」或「屬於組」)
因此,例如,我的用戶表中的任何用戶都可能沒有任何用戶,一個或多個標誌。所以我創建了一個帶有用戶ID和標誌ID的userFlags橋接表。如果表中包含給定標誌ID和用戶ID的行,則該用戶具有該標誌。
好的,現在我添加另一個實體 - 說「部分」。每個部分也可以有標誌。所以我創建了一個sectionFlags表來適應這個。
現在我有另一個實體 - 「內容」,所以再次,「contentFlags」。
依此類推。
我的最終數據模型每個實體基本上有兩個表,一個用於保存實體,另一個用於保存標誌。
雖然這當然工程,似乎有可能有更好的方式來設計我的模型,所以我不必有這麼多的橋表。我有一個想法是一個主標記「hasFlags」表與標誌ID,項目ID和項目類型。項目類型可以是隻接受與已知實體相對應的值的枚舉字段。唯一的問題是,我的實體的外鍵不起作用,因爲每個「項目ID」可能引用不同的實體。 (我已經在其他數據模型中實際使用了這種技術,雖然它確實有效,但您會失去參考完整性以及諸如級聯更新之類的事情。)
或者,或許我的數據模型是原樣的,而這只是野獸的性質。
任何更高級的經驗豐富的數據庫開發人員都會關心嗎?