[进来就感谢] 求商品规格( suk)数据表设计意见

2017-07-21 11:26:26 +08:00
 hoythan

描述 需要开发一个商品系统,卡在构思商品规格数据表设计这里,希望达成的效果是(统计方便)

需求 商品可以添加多种规格

商品规格可自定义

设计表

所有的规格信息存放于规格表中,字段名是写死的,来自规格字典表中的 suk_key (可能日后添加新规格需要添加新的规格字段)

商品表中的 suk_group 存放商品的规格顺序(为了方便查看,这里使用 suk_key 存储,以后改成 id )

帮我看看这种设计是否符合某种臆想中的标准。。。或者可能会出现哪些问题呢

3851 次点击
所在节点    程序员
32 条回复
kchum
2017-07-21 19:31:24 +08:00
@hoythan

稍微扩充一下 17 楼的
增加 SKU 关系 表

id sku_id sku_key_id
1 1 1
2 1 4
3 2 2
4 2 5

SKU 表( sku_keys 根据 sku 关系表生成)
id 商品 id sku_name sku_keys stock
1 1 红色 36 码 1,4 100
2 1 绿色 27 码 2,5 23

商品表 略

商品: sku => 1:n

后台先填写商品公用基础信息,再根据商品添加规格添加 sku
TangMonk
2017-07-21 19:58:39 +08:00
@hoythan 这个是使用 Ruby On Rails 开发的,我给你贴他的数据库 Schema 文件,是 Ruby 格式的,你应该看的懂:

https://github.com/spree/demo/blob/master/db/schema.rb
guyskk
2017-07-21 20:07:24 +08:00
两张表解决
商品表: id,name,库存,销量
商品规格表: goods_id, name, value
hoythan
2017-07-21 20:49:56 +08:00
@guyskk
如果要找出
你的设计方法只能用于一种规格的商品
比如红色 库存 1 ...

需求是像淘宝一样有多种规格的
红色,32 码,套餐 1,10 库存
红色,33 码,套餐 1,10 库存
红色,34 码,套餐 1,10 库存
...
guyskk
2017-07-21 21:18:28 +08:00
@hoythan 明白你的意思了,颜色和尺码
guyskk
2017-07-21 21:22:54 +08:00
@guyskk 抱歉没写完就发出去了。
颜色和尺码比较特殊,有对应的销量的库存。

商品表: id,name
商品规格表: id, goods_id, name, value
库存表: id, goods_id, 颜色, 尺寸, 销量,库存
hoythan
2017-07-21 22:40:13 +08:00
@guyskk 你这个设计和我设计图上的设计一样的,就是直接吧 key 写成字段名了。这样以后修改可能比较繁琐,需要手动操作数据库。
runapp
2017-07-21 22:57:38 +08:00
我觉得除了不要直接用字符串存储,换 id 之外应该没啥问题
alex8
2017-07-21 23:08:55 +08:00
我做的 SKU 系统是附加上去的,商品表只有一个 skuId 字段,灵感来自京东,单个商品即 SKU 码
table goods:
id:1 name: '阿迪王运动裤 黑色 M 码', skuId:1
id:2 name: '阿迪王运动裤 黑色 L 码', skuId:1

table sku:
id:1,name:'阿迪王运动裤' json:{
types: ['颜色', '尺码'],
typesData: [['黑色'],['M','L']],
data: ['黑色\nM','黑色\nL'],
goodsId: [1,2]
}
展示单个 SKU 商品时,有 SKU 数据显示可选属性,点击组合后进入到该属性组合的商品。
guyskk
2017-07-21 23:13:52 +08:00
@hoythan 商品规格表里 name 列是规格名称,也就是把你设计的字段名存到数据表里,value 相当于字段的值,这样就解决了加新规格要加字段的问题。库存和颜色尺寸这个对应关系,我认为不适合放到商品规格表里,所以单独建表。

首先,查数据是非常方便的,关系都很简单。
1. 商品可以添加多种规格
添加一种规格也就是规格表中加一行数据,name 是规格名称,value 是规格的一个值。查询所有规格名称用 select distinct 实现。
2. 商品规格可自定义
一种规格可以有多个值,增加一个值就是规格表加一行(已存在就忽略),删一个值就是规格表减一行,更新值就是加一行再减一行。
hoythan
2017-07-22 02:29:16 +08:00
cszchen
2017-07-22 08:29:18 +08:00
17 楼没毛病啊,还要怎么设计呢,动态属性解决电商商品属性就是最通行的方法

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

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

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

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

© 2021 V2EX