大家有做过商品多规格的功能嘛?商品的不同规格对应不同价格和库存一般是如何实现的?

2016-02-01 15:05:28 +08:00
 passion336699
我建了 3 个表,produts,produts_attribute,produts_attribute_group;
products_attribute,用来存商品规格名称以及规格对应的 key;
products_attribute_group,用来存商品不同规格组合,和该组合对应的库存,单价;
感觉每次数据库操作起来很麻烦,前后端传值也不是很好,求问有好点的数据库设计嘛?
39839 次点击
所在节点    PHP
96 条回复
neetrorschach
2016-02-01 20:14:02 +08:00
竟然看到了鸭子
Sunyanzi
2016-02-01 20:23:20 +08:00
@neetrorschach (<ゝω·)☆ 绮罗星~ ☆ kira

嘛其实我也是手贱啦 ... 本来都决定了不谈论技术的 ...

结果看到这种对口的问题还是忍不住啊 ...
coolmenu
2016-02-01 21:19:27 +08:00
mark,关注一下
crayhuang
2016-02-01 21:38:04 +08:00
建议可以参考 IBM WCS 的表设计
ebony0319
2016-02-01 23:13:44 +08:00
@naffan 最简单的来说吧。厅装哈尔滨啤酒有一厅厅卖,然后也有可能 6 个一组组卖,也有可能一件件卖( 24 厅)。每一种规格都是一种新的价格。当我们输入一件件条码,一组组条码时候系统应该自动拆分为单厅条码入库。原因很简单,别人上柜台的时候自动拆分了整件,然后拆分了组。
sku , Stock Keeping Unit (最小存货单位)。
ebony0319
2016-02-01 23:23:20 +08:00
@naffan 兄弟我觉得那个 sku 你理解上跟我有偏差。
Insomnia
2016-02-01 23:24:27 +08:00
个人感觉 @Sunyanzi 的方法比较好,就是京东的这样的方式。
realpg
2016-02-01 23:35:38 +08:00
别纠结 SKU 什么的。
很讨厌跟阿里系出身的程序员、受阿里系代码逻辑影响谈商城系统设计。
天天就 SKU SKU 的……

只要有任何参数不同的,就是两种商品。
然后,提现所谓 SKU 的,只是显示层聚合,就是在 itemshow 的页面里面,根据配置去把本质是定义成不同的商品的东西聚合显示而已。

这种结构清晰,性能损失小,而且容易充分利用缓存系统。
jarlyyn
2016-02-02 09:10:32 +08:00
@realpg

sku 和阿里什么关系?
realpg
2016-02-02 10:01:48 +08:00
@jarlyyn
反正我发现他们出来的开发,天天把这个挂嘴上……
jarlyyn
2016-02-02 10:07:47 +08:00
@realpg

难道不是因为这个是业界标准,甚至出现在阿里创立之前么?

https://zh.wikipedia.org/wiki/%E6%9C%80%E5%B0%8F%E5%AD%98%E8%B4%A7%E5%8D%95%E4%BD%8D
naffan
2016-02-02 11:58:30 +08:00
@realpg 永远不可能是程序员开始提 sku 这玩意的,要赖也得赖产品。程序只是照产品的意思表达的
realpg
2016-02-02 12:03:17 +08:00
@naffan
我说的不只是 SKU 这个名词
我表达不太好抱歉
很多阿里出来的高级开发,就总想着把 SKU 做到一起去,类似一楼的思想,就是这些东西一定是关联的,然后搞出一堆复杂的逻辑,可能内部实现非常好,技术、性能都非常牛逼,别人一看巨复杂,而且难以改变这个思想。
naffan
2016-02-02 13:34:38 +08:00
@realpg 不用道歉哈,多大点事。

不过话说回来。这东西还真是处处关联的吧。同时,也需要一堆复杂的逻辑吧?
realpg
2016-02-02 13:36:54 +08:00
@naffan

实际生产上,我自己做的项目,以及我曾经加入的几个团队,都不是阿里那种处处关联的玩法。
每个 SKU 都是一个独立商品,在 item_show 的逻辑上进行一下关联聚合的比较多 顶天二次 ajax 一个库存余量虚了一些不存在的组合
naffan
2016-02-02 14:01:14 +08:00
@sujin190 请问你是如何看出的京东和淘宝是不同的唯独。我看京东怎么都是静态页面呢?
naffan
2016-02-02 14:06:45 +08:00
@realpg 那咱们先不说阿里的玩法吧。就说你参加的几个项目。照你所说,我感觉你的意思和楼主所说的表设计差不太多。但是,@Sunyanzi 说如果每个 sku 都是一个独立商品会后患无穷,具体什么后患我不清楚只有过来人才能说出。不知道你能不能提供个建表思路呢?感谢
realpg
2016-02-02 14:13:42 +08:00
@naffan 我现在都是手机,最近长期驻医院陪护,等我倒开空给你发一组。楼主的我看的也不太仔细。

粗略的说 我的建表思路就是所有都独立商品,然后一个表存储哪些商品聚合在一起显示,一个额外的表对于非单条件聚合提供关联方式(比如颜色和尺码双选择这种)

具体表结构等我忙完给你找代码示例吧。
naffan
2016-02-02 14:19:15 +08:00
@realpg 首先,谢谢你热情。其次,得祝福一下你陪护的亲人,望能快快好起来。今年,我姥姥也有一次肺炎住过院,要命的病陪护很费自己的精力和体力。我完全能理解。请原谅允许我说下私心话,由于我也处在电商的项目中,时间不等人,我也强烈期望着有经验人的经验,望能够理解。不过,没有关系我可以尽量等待哈哈。
最后,愿你以及你的家人过一个好春节。
naffan
2016-02-02 14:30:53 +08:00
@ebony0319 每个人对 spu 和 sku 都有自己的理解,可是真理只有一个,那么我们可以讨论一下什么是 spu 和 sku 。这样有助于理解的正确化,也有助于帮助程序提早的矫正框架的 spu 和 sku 概念。下面,我说说我对这两个单词概念的理解。
spu 就是商品,是不同 sku 组合成的一个实体。 比如, iphon6 就是一个 spu , iphone5 就是一个 spu 。
sku ,最小单位化,和你刚才说的一样。不如,颜色,大小,重量。

那么总结起来,颜色 sku 为金色,大小 sku 为 6.5 寸,重量 sku2kg (数都是我随便举的)。组合起来的就是 spu 是土豪金 iphone6plus 。 同样,白色的 iPhone6plus 又是另一个 spu 。但是,金色和白色都是 iphone6plus 这款产品。 不知道我这么理解有没有问题,如果有请帮指正,感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/254792

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX