咨询一下,看业界通用的表设计,一般都是一个商品表, 然后商品表里有库存的属性, 想咨询一下,能否直接把库存放到商品字段上呢? 感觉两个方案在扣减 / 添加库存的锁竞争其实都差不多。为什么倾向于单独放一个库存表呢 ?
1
vibbow 2022-11-22 07:18:02 +08:00
需要考虑多库房的情况
|
2
Seulgi 2022-11-22 09:35:33 +08:00
业界通用是指开源商城? 那叫啥业界通用. 把库存放 sku 上就一个原因, 商城没有对应的仓库系统, 也就是库存管理是放在商城 sku 维护上的. 如果真的按业界来说, sku 和仓储是两个系统, 具体的库存其实在仓储, 你看到的 sku 库存, 是仓储给你的.
|
3
linxb 2022-11-22 09:39:17 +08:00
现实是商城都是多仓库多供应链体系,一个商品很少只有一个库存数,单独库存表是必然的。
|
4
stonelf 2022-11-22 10:24:26 +08:00
分开存储,是为了降低数据冗余。保存到一张表,是冗余换性能,因为查询的时候不需要关联两张表做查询了。
|
5
zzzaloha OP 非常感谢大家的回复,目前看起来库存场景很简单, 商品和库存是 1 对 1 关系, 因此库存数量放在商品数量即可。
|
6
kujio 2022-11-22 10:50:29 +08:00
一般一个商品对应很多不同的库存数据
比如不同的仓库,货位,批号, |
7
dobelee 2022-11-22 15:47:39 +08:00
看业务访问量和 sku 表的复杂度,复杂度高建议把库存放到另一个表,便于频繁更新库存。
|
8
zzzaloha OP @dobelee 我可以理解拆成两个表的好处就只有 减少 「更新商品」 和 「更新库存」 和锁竞争, 其他应该就没有了吧
|
9
akaHenry 2022-11-22 18:44:51 +08:00 1
表字段, 是 拆分 vs 合并.
要思考: 字段是频繁读 vs 频繁写. 多读少写(写一次不变更) 和 频繁写的数据, 显然不适合放在一起. 顺便, 有些表字段, 是要加锁的(事务), 大量表字段, 是不需要的. 同上. 要搞清楚设计的本质目的是什么. 你就知道该不该放一起. |