我想對產品變型(而不是選項或屬性,簡單變型)建模。產品變型的設計數據庫
所以每一個變種都是一種產品本身。對產品的所有變體有效的一般信息存儲在另一個表格(例如:文字說明)中。好吧,我認爲這很好,不需要進一步的改變。
對於從屬選項(例如顏色:紅色,大小:小),我創建了兩個變體。
變型1:
表的簡短說明:
- 選項:存儲所有可用的選項(顏色,大小,材料,...)
- 價值:存儲所有可用的值(紅色,藍色,綠色,小,中,大,鐵,木)
- option_value:存儲所有可能的選項和值的組合(顏色:{紅色,藍色,綠色},大小:{小,中,大},...
- product_option_value現在將產品連接到其選項(例如:顏色:red,size:small,product_id:1;顏色:藍色,尺寸:小,product_id:1)
好吧,我認爲這將工作得很好 - 左側的元數據描述(哪些選項,哪些值,哪些組合)用戶界面 - 右側的產品鏈接。
但是有一個問題...可能的選項和值的組合被描述爲構建GUI及其可能以編程方式進行驗證,但數據庫無法驗證。
所以我創建變種2:
現在我不知道,如果第二個解決方案可能是更好的一個。你怎麼看?有改進的餘地嗎?
這取決於你想要達到與關於數據的完整性和級聯更新什麼/級聯刪除。順便說一句,你的結構看起來像一個輕的EAV模型。 – 2012-07-26 14:01:32
我打算根據初始點將此評論擴展爲答案:分析兩個變體的每個級聯流程。 – 2012-07-26 14:04:49
是的,你是對的 - 這是EAV,我對它並不滿意,但該系統將成爲許多供應商的市場。因此這些選項必須是動態的。 關於級聯更新/刪除:我看不出兩個變體之間有什麼大的差異。關於數據完整性,變體2可能會更好。 – 2012-07-26 14:45:26