为产品变体设计数据库

Fra*_*ner 5 mysql database-design

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

所以每一个变体都是一个产品本身。适用于产品所有变体的一般信息存储在另一个表中(例如:文本描述)。好的,我认为这很好,不需要进一步更改。

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

变体 1:

图一

表的简短说明:

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

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

但是有一个问题...... 选项和值的可能组合被描述为构建 GUI 并且它可能以编程方式验证它,但数据库不能进行验证。

因此我创建了变体 2:

图二

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

Bra*_*vic 1

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

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

在此输入图像描述