我想模拟产品变体(不是选项或属性,只是变体) .
所以每个变体都是产品本身 . 对产品的所有变体有效的一般信息存储在另一个表中(例如:文本描述) . 好吧,我认为这很好,不需要进一步的改变 .
对于依赖选项(例如颜色:红色,大小:小),我创建了两个变体 .
Variant 1:
表格的简短描述:
-
选项:存储所有可用选项(颜色,大小,材料......)
-
value:存储所有可用值(红色,蓝色,绿色,小,中,大,铁,木)
-
option_value:存储选项和值的所有可能组合(颜色:{红色,蓝色,绿色},大小:{小,中,大},...
-
product_option_value现在将产品与其选项连接(例如:颜色:红色,尺寸:小,product_id:1;颜色:蓝色,尺寸:小,product_id:1)
好的,我认为这样可以很好地工作 - 在左侧用于构建UI的元数据描述(哪些选项,哪些值,哪些组合) - 右侧是与产品的链接 .
但是有一个问题......描述了选项和值的可能组合以构建GUI,并且可以以编程方式验证它,但数据库无法进行验证 .
因此我创建了 variant 2:
现在我不确定第二种解决方案是否更好 . 你怎么看?还有改进的余地吗?
1 回答
如果要将
product_option_value
only 限制为option_value
中已存在的值,则为是,第二个模型是更好的模型 .然而,该模型允许在多个选项之间共享单个值(例如,“红色”可以是“颜色”和“大小”) . 我猜这不是你想要的,在这种情况下,模型看起来应该类似于: