php - 如何关联多规格与商品?
黄舟
黄舟 2017-04-11 10:33:28
0
2
409

系统原先的商品是不区分多规格与否的,现在要增加多规格这个属性,举例手机,它就有好几种规格组合,以规格颜色与内存为例子,

多规格

颜色:  白色   黑色
容量:  32G   64G

那么对应的最多就有4种商品,不同的规格组合可以不同价格,可以不同描述图片等

白色-32G
白色-64G
黑色-32G
黑色-64G

也可能有些组合的商品是不存在的,比如卖家没有黑色-32G的货,也就没有对应的商品itemId。

对商品来说,多规格的用途就是在商品展示页,能够展示它的兄弟商品。

现在问题是我应该如何关联商品Item与某个多规格下具体的一个规格组合,数据库如何保存比较合理?或者有更好的办法解决这种需求“多规格的用途就是在商品展示页,能够展示它的兄弟商品”?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

reply all(2)
阿神

我的思路如下:

不同的规格对应的其实是不同的物品,例如你32G的IPhone和64G的IPhone,对应的编码是不一致的。这个你平常可以关注下不同规格的包装,对应的编码都是不一样的。试下下如果使用的编码一致,那样仓库是极容易发错货的。

上面的编码一般术语是SKU(stock keeping unit),一般中文叫货号。

所以针对商品最小的粒度应该是产品(只是一种描述而已),然后一个商品包含多个相关联的产品,商品可以维护这些产品的一致数据(参数,规格,详情等,也有按产品维度单独维护的)。

一般有一张goods表,用于表示商城中的商品,product表对应同一商品的不同产品,规格应该更合适的称为品项,因为是有多个维度的,比如IPhone,可以通过颜色 + 存储等等品项值,得出对应的SKU,即product表的product_id。

上面只是我的一些看法,有问题随时欢迎提出改进。

Peter_Zhu

原理

可以参考sylius, sylius的商品设计满足你的需求。
商品本身,有两个重要的特性, 一是属性, 二是,选项。 举例子说,属性就是一个商品的参数,简单的键值对。 比如像京东的一个商品的参数部分。 选项的意义就不同了,按照你的例子, 这个商品会有两个选项, 一个叫颜色, 包括, 白色, 黑色,另外一个选项叫内存大小,有32G,64G两个值。 两个选项的任意一个值组合起来决定商品的价格,在sylius中,这就叫商品变体。 建议研究一下sylius的商品的表结构设计。

选项的表结构


sylius的选项采取的是单独的表存放选项的值,再将变体与值以多对多的关系关联起来。

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!