V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zzzaloha
V2EX  ›  数据库

在设计表的时候,库存表和商品表是推荐库存是放到 sku 字段里,还是单独拆两个表呢 ?

  •  
  •   zzzaloha · 2022-11-21 23:22:41 +08:00 · 1636 次点击
    这是一个创建于 738 天前的主题,其中的信息可能已经有所发展或是发生改变。

    咨询一下,看业界通用的表设计,一般都是一个商品表, 然后商品表里有库存的属性, 想咨询一下,能否直接把库存放到商品字段上呢? 感觉两个方案在扣减 / 添加库存的锁竞争其实都差不多。为什么倾向于单独放一个库存表呢 ?

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

    要思考: 字段是频繁读 vs 频繁写.

    多读少写(写一次不变更) 和 频繁写的数据, 显然不适合放在一起.

    顺便, 有些表字段, 是要加锁的(事务), 大量表字段, 是不需要的. 同上.

    要搞清楚设计的本质目的是什么. 你就知道该不该放一起.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1171 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:46 · PVG 02:46 · LAX 10:46 · JFK 13:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.