是否需要库存管理交易 table?

Is Inventory management transaction table necessary?

在我设计的库存管理系统中,我有 purchase_orderssale_ordersinventory_adjustment table,每个都有项目 table(例如 purchase_item) 持有数量、价格等

现在回答问题,

通常在库存管理示例中,我发现有一个叫做 InventoryTransaction table 的东西,它包含 INs/OUTs of products/skus

ID     date         sku_id  type   qty    price   warehouse_id
ABC    11.11.2018   bbb     IN     200    123     11
ABC    12.11.2018   bbb     OUT    120    123     12

这个设计看起来不错,因为它减少了计算手头库存的复杂性,但它也有一些缺点。我正在考虑在购买、订单和调整 table 上使用触发器来填充 inventory_transaction table.

值得这么麻烦吗?或者我应该只保留我现有的设置并依靠销售、采购和调整来计算现有库存?

我在库存管理系统方面的经验有限,所以我不太确定将来我可能会遇到什么要求。我宁愿避免在两年内亲眼看到什么是最好的选择:)

谢谢

库存交易方法是许多 ERP 系统中使用的标准事实。它也基于抽象的会计引擎原则。 交易历史需要确保每个 SKU 在每个时期(即天)的非负总额,而不仅仅是当前的。

比如修改某个单据和对应的交易日期,可能是昨天或一周前,甚至明天。但是,所有 SKU 在这两个日期的数量,无论是旧的还是新的,都应该 > 0。