库存水平跟踪库存数据库 - 如何在结账前实施库存检查

时间:2013-05-23 09:51:55

标签: database-design software-design inventory-management

我正在为库存管理应用程序设计一个数据库,该应用程序将处理物品的库存水平跟踪以及结帐订单的提交和处理。 到目前为止,我得到了: 物品表

  • item id
  • 递减
  • 初始库存水平
  • 其他相关信息

带有

的订单表
  • 订单ID
  • 订单日期
  • 客户ID

带有

的order_detail表
  • 订单明细ID
  • 订单ID
  • item id

我使用交易表跟踪库存水平,每次处理订单或库存被重新处理时,会在该表中插入一条记录,其中包含交易类型,以指示它是进出交易。 transactions_in_out

  • 交易ID
  • item id
  • 交易类型(进/出)
  • 个人价格

我的问题是,在处理订单并插入一个out事务之前,我想检查库存水平是否足够,并在插入事务后激活低库存警报(尽管这是一个不同类型的问题)。因为它是唯一的方法是重新计算当前的库存水平!!如果我的桌子按计划增长,这将对性能产生可怕的影响。最简单的方法是什么?

1 个答案:

答案 0 :(得分:3)

我会更新商品/产品表以包含current_stock_level列。对此列存在检查约束,以确保它始终为>= 0

完成此操作后,您插入订单的交易将需要根据订购数量减少库存水平。如果有人订购的库存超过可用库存,他们将违反约束并收到错误。

如果要根据交易验证库存水平,请保留initial_stock_level列。然后,您可以运行每日/每周/每当进程以验证此减去订单总数等于当前库存水平。如果这些不同,那么您可以更新当前级别或向某人发出警报以进行调查。

完成此验证过程(成功)后,将initial_stock_level更新为当前级别。还包括stock_level_verified日期,以指示上次运行此日期。

请注意,如果您的系统一直使用24x7,则可能会遇到运行此检查过程的并发问题,因为人们可以在执行此操作时减少库存。你需要考虑如何管理它。