我正在为地毯公司开发一个mvc应用程序。地毯的价格取决于颜色组合和尺寸。所以为了模拟这个场景我使用了2个表。 1.Carpets。 2.CarpetVarients。(适用于各种颜色和大小的组合)。
在CarpetVarients表中,我正在考虑创建列" Colors"," Size"和"价格" (沿着其他栏目)。 Colors列将存储逗号分隔的颜色(如Cream,Red,)。
这种设计有效吗?或者我应该把每个组合都变成不同的地毯。
答案 0 :(得分:1)
通常,将事物存储为分隔字符串并不是一个好主意(除非你在谈论有多种颜色的地毯,在这种情况下,事情可能会有所不同)。最好为每种颜色/尺寸组合添加一行。
考虑将Carpet
称为Style
,然后Carpet
表格可以Style
,Colour
和{ {1}}。
e.g。
Size
e.g。设计回答"告诉我所有将xxx作为颜色的地毯。"
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' '£££££'
答案 1 :(得分:0)
您应该按如下方式创建表格:
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
答案 2 :(得分:0)
您也可以执行类似
的操作Carpet:
CarpetId Carpet_PartNumber Color Size parentID Price
1 AB12 NULL NULL NULL NULL
2 AB23 Green 12inch 1 100
通过这种方式,您可以将每个地毯都作为个人产品。 注意(对于颜色和大小,您可以使用LOOKUP表)