首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >产品多选项的数据库结构

产品多选项的数据库结构
EN

Stack Overflow用户
提问于 2011-12-06 11:23:32
回答 2查看 3.7K关注 0票数 2

我的数据库(MySQL)中有产品。我有我的价格,根据不同的组合,我的产品。我有以下数据:

产品

代码语言:javascript
复制
prodID | prodName
1      | Ball

OPTIONS

代码语言:javascript
复制
optionID | optionName | prodID
1        | color      | 1
2        | size       | 1
3        | material   | 1

OPTIONVALUES

代码语言:javascript
复制
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 .

如何为此设计数据库结构?我试过几种方法,但没有一种是好的。如果选项的数量是静态的,那么每个选项都可以有自己的表,但这不是一个好的解决方案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-06 11:40:02

我喜欢你已经拥有的东西。如果你想让它像我猜的那样灵活,我会做以下几件事:

再加两张桌子。

Product_Instance

代码语言:javascript
复制
instanceID | prodID | price
1          | 1      | 13

Product_Instance_Options

代码语言:javascript
复制
instanceID | ovID
1          | 1
1          | 3
1          | 6

通过这种方式,您可以为它们定义所有可能的组合和价格。设置所有的价格可能是一项艰巨的工作,但是如果你不能计算它们(如small=2$ =+2美元,big=4$/玻璃),那么无论你怎么做,都会有这样的结果。

票数 1
EN

Stack Overflow用户

发布于 2011-12-06 11:43:24

像这样的事怎么样:

productTypes

代码语言:javascript
复制
prodID | prodName
1      | Ball
2      | Car

productInstances

代码语言:javascript
复制
prodInstanceID | prodID | Prize
1              | 1      | $19
2              | 1      | $50
3              | 2      | $8

性质

代码语言:javascript
复制
propertyID  | propertyName
1           | color
2           | size
3           | material

propertiesValues

代码语言:javascript
复制
pvID |propertyID  | propertyName
1    | 1          | red
2    | 1          | blue
3    | 2          | small
4    | 2          | medium
5    | 2          | large
6    | 3          | wood
7    | 3          | glass

productProperties

代码语言:javascript
复制
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 

在设计中,您无法确定哪个选项属于哪个产品实例。如果您查看表选项值,则无法将选项组合在一起。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8399113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档