对于 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 数据给后端时,全部新建。
求大神赐教
1
haython 2015-05-24 22:01:43 +08:00
SKN->SKC->SKU
SKN-->衣服 SKC-->蓝色衣服 SKU-->M码蓝色衣服 反正我是这样理解的 |