我想为产品变体建模(不是选项或属性,只是变体)。
因此,每个变体本身就是一个产品。适用于产品所有变体的一般信息存储在另一个表中(例如:文本描述)。好的,我认为这很好,不需要进一步更改。
对于相关选项(例如颜色:红色,尺寸:小),我创建了两个变体。
变体 1:
表格的简短描述:
- 选项:存储所有可用的选项(颜色、尺寸、 Material ……)
- 值:存储所有可用值(红、蓝、绿、小、中、大、铁、木)
- option_value:存储选项和值的所有可能组合(颜色:{red,blue,green},尺寸:{small, medium, large},...
- product_option_value 现在将产品与其选项相关联(例如:color:red, size:small, product_id:1;color:blue, size:small, product_id:1)
好的,我认为这会非常有效 - 左侧是用于构建 UI 的元数据(哪些选项、哪些值、哪些组合)的描述 - 右侧是与产品的链接。
但是有一个问题......描述了选项和值的可能组合以构建 GUI 并且可以通过编程方式对其进行验证,但数据库无法进行验证。
因此我创建了变体 2:
现在我不确定第二种解决方案是否更好。你怎么看?有改进的余地吗?
最佳答案
如果您想将product_option_value
仅限制为option_value
中已经存在的值,那么是的,第二种模型更好。
但是,此模型允许在多个选项之间共享单个值(例如,“red”可以同时是“color”和“size”)。我猜这不是你想要的,在这种情况下模型应该类似于:
关于mysql - 为产品变体设计数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11670883/