[英]Is this database design ok?
我正在为一家地毯公司开发一个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
。 例如,名为abc的地毯总数为200
您也可以做类似的事情
Carpet:
CarpetId Carpet_PartNumber Color Size parentID Price
1 AB12 NULL NULL NULL NULL
2 AB23 Green 12inch 1 100
这样,您就可以将每张地毯作为独立产品。 注意(对于颜色和大小,您可以使用LOOKUP表)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.