我正在爲地毯公司開發mvc應用程序。地毯的價格將取決於顏色組合和尺寸。因此,爲了模擬這種情況,我使用了2個表格。 1.地毯。 2.CarpetVarients。(適用於各種顏色和尺寸組合)。這個數據庫設計好嗎?
在CarpetVarients表中,我正在考慮創建「顏色」,「尺寸」和「價格」欄(沿其他欄)。顏色列將存儲逗號分隔的顏色(如奶油色,紅色)。
該設計是否可以工作?或者我應該讓每個組合成爲不同的地毯。
我正在爲地毯公司開發mvc應用程序。地毯的價格將取決於顏色組合和尺寸。因此,爲了模擬這種情況,我使用了2個表格。 1.地毯。 2.CarpetVarients。(適用於各種顏色和尺寸組合)。這個數據庫設計好嗎?
在CarpetVarients表中,我正在考慮創建「顏色」,「尺寸」和「價格」欄(沿其他欄)。顏色列將存儲逗號分隔的顏色(如奶油色,紅色)。
該設計是否可以工作?或者我應該讓每個組合成爲不同的地毯。
通常,將東西存儲爲分隔字符串並不是一個好主意(除非您正在討論的地毯有多種顏色,在這種情況下情況可能會有所不同)。最好爲每種顏色/尺寸組合排成一行。
也許這將是更好的想你叫什麼Carpet
作爲Style
,然後的Carpet
表可以有Style
,Colour
和Size
。
例如
Style
StyleID StyleName Description
1 'Modern' 'Striped'
2 'Rustic' 'Checks'
Carpet
CarpetID StyleID Colour Size Price
1 1 'Red-Green' 'Small' '£'
2 1 'Orange-Teal' 'Large' '£££'
3 2 'Violet-Magenta' 'Large' '£££££'
例如,設計回答「告訴我所有具有xxx顏色的地毯」。
…
Carpet
CarpetID StyleID Size Price
1 1 'Small' '$'
2 1 'Large' '$$$'
3 2 'Large' '$$$$$'
Colour
ColourID ColourName RGB
1 Red 255, 0, 0
2 Green 0, 255, 0
CarpetColour
CarpetID ColourID
1 1
1 2
2 3
2 4
...
您應該創建表如下:
Carpet
CarpetID (PK), CarpetName, Description
1 abc green-yellow 2*3
CarpetVarient
StyleID (FK), Color, Size, Price
1 green 2 100
1 yellow 3 100
因此地毯可以是多種風格和地毯的總price
將基於StyleId
價格的總和。 Ex.The地毯名爲ABC將總共200
,你也可以這樣做
Carpet:
CarpetId Carpet_PartNumber Color Size parentID Price
1 AB12 NULL NULL NULL NULL
2 AB23 Green 12inch 1 100
這樣你就可以有充分的地毯作爲一個單獨的產品。 注意(對於顏色和尺寸,您可以使用LOOKUP表格)
什麼樣的查詢將用於顏色列? – Marichyasana
好點。你會想知道'告訴我所有的顏色都是紅色的'地毯嗎?如果不是,則說明字段中的顏色很好。如果顏色需要單獨查詢,你應該把它放在它自己的查找表中 –
我還沒有開始編程,但感覺與.Where(c => c.Colors.Contains(「紅色」))的實體sql可能與一個加入2張桌子。 – rahul