库存系统应分离商品与库存数据,商品表存静态属性,库存主表记录各仓实时数量(含可用、冻结、预留库存),每次变动须同步更新明细表并用事务保证强一致,辅以定期校验和异常预警机制。

库存主表要存当前可用量,别直接在商品表里加库存字段
商品信息和库存状态应该分离。商品表只管名称、规格、成本价这些不变或变动少的属性;库存主表单独建,记录每个商品在每个仓库(或总仓)的实时可用数量。这样后续做调拨、盘点、多仓管理才不会乱。主表至少包含:商品ID、仓库ID、可用库存、冻结库存、预留库存、更新时间。冻结库存用于已下单未出库的部分,预留库存可支持预售或锁单场景。
每次数量变动必须写入明细表,不能只改主表数字
光更新库存主表,等于丢了“为什么变”和“谁动的”这两个关键信息。必须配套一张库存变动明细表,字段建议包括:单据类型(采购入库/销售出库/盘盈/盘亏/调拨转入/调拨转出)、单据号、商品ID、仓库ID、变动数量(正为进、负为出)、操作人、操作时间、业务单据关联ID、备注。这条记录是审计依据,也是对账和排查差异的唯一线索。
用事务保证主表和明细表数据强一致
比如一笔销售出库,要同时做两件事:库存主表的可用库存减掉对应数量,明细表插入一条出库记录。这两步必须放在同一个数据库事务里。只要其中一步失败,全部回滚。否则会出现“库存变少了但没记录”或“记了变动但库存没减”的情况——这是库存不准最常见原因之一。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~