电商平台中,商品 SKU 模型的前后端交接是怎样实现的?

2015-05-24 01:19:07 +08:00
 hyesun

对于 SKU 的数据库模型,我是这样设计的:

ProductSKU:
    id
    product_id
    spec_list

SpecKey:
    id
    name

SpecValue:
    id
    spec_key_id
    name

举个例子,有个商品叫做“衣服”,这个商品的 id 是1。“衣服”下有一个 SKU,具体规格是:size, xxl ; color, red。那么上述三张表分别会有如下数据行:

SpecKey:
id            name
10            size
20           color

SpecValue:
id           spec_key_id          name
30                10                      xxl
40                20                      red

ProductSKU:
id                product_id            spec_list
50                     1                '10:30,20:40'

可以看出,一个 spec_key (即规格名,例如“颜色”)是跟一个商品关联的,而一个spec_value(即规格值,例如“红色”)是跟一个 spec_key 关联的,也因此是跟某个商品关联的。spec_list 记录的是当前 SKU 所具有的规格名和对应的规格值。

现在想做出这样的页面,页面给出所有的规格,商家在后台修改商品时,通过勾选不同规格组成不同的 SKU,并填写价格等信息。

后端会把所有 SKU 信息传给前端。在这个页面中,勾选不同的规格,会组合成不同的 SKU。一开始我是这么考虑的,把每个 SKU 在数据库中的 id 传给前端,这样用户修改了某个 SKU 的信息,前端会把它的 id 返回给后端,那么后端可以根据 id 来修改 SKU 信息。
可是如果用户在修改商品SKU的过程中,可能把某个 SKU 删掉了,又新建了一个,那么后端需要知道哪些被删,哪些新建。
我不了解前端,不知道应该怎么实现这个过程。我看了一下微信小店的代码,发现 post 给后端的数据中并没有关于哪些被新建,哪些被删除的信息。所以我现在想到的最坏的办法就是:每次把数据发给前端,都把 SKU 从数据库删除(或标记删除);当前端 post 数据给后端时,全部新建。

求大神赐教

4085 次点击
所在节点    问与答
1 条回复
haython
2015-05-24 22:01:43 +08:00
SKN->SKC->SKU
SKN-->衣服
SKC-->蓝色衣服
SKU-->M码蓝色衣服
反正我是这样理解的

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

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

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

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

© 2021 V2EX