5

我想为产品变体建模(不是选项或属性,只是变体)。

因此,每一个变体本身就是一个产品。对产品的所有变体有效的一般信息存储在另一个表中(例如:文本描述)。好的,我认为这很好,无需进一步更改。

对于依赖选项(例如颜色:红色,尺寸:小),我创建了两个变体。

变体 1:

图1

表的简短描述:

  • 选项:存储所有可用选项(颜色、尺寸、材料……)
  • value:存储所有可用的值(红、蓝、绿、小、中、大、铁、木)
  • option_value:存储选项和值的所有可能组合(颜色:{red,blue,green}, size:{small, medium, large},...
  • product_option_value 现在将产品与其选项连接起来(例如:color:red、size:small、product_id:1;color:blue、size:small、product_id:1)

好的,我认为这会很好用——左边是用于构建 UI 的元数据描述(哪些选项、哪些值、哪些组合)——右边是与产品的链接。

但是有一个问题......描述了选项和值的可能组合以构建GUI,并且可以通过编程方式对其进行验证,但数据库无法进行验证。

因此我创建了变体 2:

图2

现在我不确定第二种解决方案是否会更好。你怎么看?有没有改进的余地?

4

1 回答 1

0

如果您只想限制product_option_value 已经存在的值option_value,那么是的,第二种模型更好。

但是,该模型允许在多个选项之间共享单个值(例如,“红色”可以是“颜色”和“大小”)。我猜这不是您想要的,在这种情况下,模型应该类似于:

在此处输入图像描述

于 2012-07-26T18:31:27.373 回答