系统原先的商品是不区分多规格与否的,现在要增加多规格这个属性,举例手机,它就有好几种规格组合,以规格颜色与内存为例子,
多规格
颜色: 白色 黑色
容量: 32G 64G
那么对应的最多就有4种商品,不同的规格组合可以不同价格,可以不同描述图片等
白色-32G
白色-64G
黑色-32G
黑色-64G
也可能有些组合的商品是不存在的,比如卖家没有黑色-32G
的货,也就没有对应的商品itemId。
对商品来说,多规格的用途就是在商品展示页,能够展示它的兄弟商品。
现在问题是我应该如何关联商品Item与某个多规格下具体的一个规格组合,数据库如何保存比较合理?或者有更好的办法解决这种需求“多规格的用途就是在商品展示页,能够展示它的兄弟商品”?
原理
可以参考sylius, sylius的商品设计满足你的需求。
商品本身,有两个重要的特性, 一是属性, 二是,选项。 举例子说,属性就是一个商品的参数,简单的键值对。 比如像京东的一个商品的参数部分。 选项的意义就不同了,按照你的例子, 这个商品会有两个选项, 一个叫颜色, 包括, 白色, 黑色,另外一个选项叫内存大小,有32G,64G两个值。 两个选项的任意一个值组合起来决定商品的价格,在sylius中,这就叫商品变体。 建议研究一下sylius的商品的表结构设计。
选项的表结构
sylius的选项采取的是单独的表存放选项的值,再将变体与值以多对多的关系关联起来。