繁体   English   中英

这种数据库设计可以吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM