我的数据库(MySQL)中有产品。我有我的价格,根据不同的组合,我的产品。我有以下数据:
产品
prodID | prodName
1 | BallOPTIONS
optionID | optionName | prodID
1 | color | 1
2 | size | 1
3 | material | 1OPTIONVALUES
ovID | optionID | ovValue
1 | 1 | red
2 | 1 | blue
3 | 2 | small
4 | 2 | big
5 | 3 | wood
6 | 3 | glass对于价格,我想要这样的:
采购产品红色小木球-13美元红色小玻璃球- 14红大木球- 16红大玻璃球- 17蓝色小木球- 12.5 .
如何为此设计数据库结构?我试过几种方法,但没有一种是好的。如果选项的数量是静态的,那么每个选项都可以有自己的表,但这不是一个好的解决方案。
发布于 2011-12-06 11:40:02
我喜欢你已经拥有的东西。如果你想让它像我猜的那样灵活,我会做以下几件事:
再加两张桌子。
Product_Instance
instanceID | prodID | price
1 | 1 | 13Product_Instance_Options
instanceID | ovID
1 | 1
1 | 3
1 | 6通过这种方式,您可以为它们定义所有可能的组合和价格。设置所有的价格可能是一项艰巨的工作,但是如果你不能计算它们(如small=2$ =+2美元,big=4$/玻璃),那么无论你怎么做,都会有这样的结果。
发布于 2011-12-06 11:43:24
像这样的事怎么样:
productTypes
prodID | prodName
1 | Ball
2 | CarproductInstances
prodInstanceID | prodID | Prize
1 | 1 | $19
2 | 1 | $50
3 | 2 | $8性质
propertyID | propertyName
1 | color
2 | size
3 | materialpropertiesValues
pvID |propertyID | propertyName
1 | 1 | red
2 | 1 | blue
3 | 2 | small
4 | 2 | medium
5 | 2 | large
6 | 3 | wood
7 | 3 | glassproductProperties
ppID | prodInstanceID | pvID
1 | 1 | 1
2 | 1 | 3
3 | 1 | 6
4 | 2 | 2
5 | 2 | 4
6 | 2 | 7
7 | 3 | 1
8 | 3 | 3
9 | 3 | 6 在设计中,您无法确定哪个选项属于哪个产品实例。如果您查看表选项值,则无法将选项组合在一起。
https://stackoverflow.com/questions/8399113
复制相似问题