继『多维度 SKU 应该有所讨论』之后的再次讨论
在看完《商城进阶》之后,一直没太明白多维 SKU 到底该如何处理(我是菜鸡)。后来看到 多维度 SKU 应该有所讨论 下众多回复,慢慢有所体会,但思来想去总觉得有些不对劲,下面将我的想法说一下,请大家予以批评。此致敬礼。
Google 了很多资料,大都太复杂或者难以理解,反反复复琢磨了 leo 的最佳回复,觉得这个方案还是可行的
加一个表:product_sku_attributes
product_id
name
然后给 SKU 加一个 attributes
字段
假如有个 id = 1 的商品 iPhone X,有 3 个 product_sku_attributes:
[
["id" => 1, "product_id" => 1, "name" => "套餐类型"],
["id" => 2, "product_id" => 1, "name" => "颜色"],
["id" => 3, "product_id" => 1, "name" => "内存"],
]
新建 SKU 的时候,attributes
值为:
[
["id" => 1, "value" => "套餐一"],
["id" => 2, "value" => "土豪金"],
["id" => 3, "value" => "256G"],
]
最终在数据库中的数据表现大概是这样
没错,逻辑上没有问题的。但是这个时候我有一个疑问,如果在编辑的时候需要把 土豪金
改成 土豪黄
,或者删除 256G
,理论上通过 JSON 处理是可以的,但是这就需要去找商品对应的所有 SKU 并修改 attributes
中的内容,我觉得还是太麻烦。
现在我的想法是不要这个 attributes
字段,增加另外一张表 product_attribute_values
用以记录每个属性值,在 product_skus
中增加 attribute_id
和 attribute_value_id
,这样在编辑的时候也只需要修改 product_attribute_values
中的一条记录,删除的时候也只需要在 product_skus
去找 attribute_value_id
对应的记录,简单明了。
不知道我这样想的对不对,请各位众神给点意见......
推荐文章: