【发布时间】:2010-12-22 15:05:30
【问题描述】:
在库存控制系统中,在数据库中记录以下实体(这当然过于简化了):
- 物品(需要控制库存)
- 库存变动:
- 输入移动(它们加起来就是特定的商品库存)
- 输出变动(它们从某些项目库存中减去)
哪个是最好的策略以及为什么:
- 存储每个项目的当前数量并在每次记录移动时更新。
- 不要在每个项目中存储当前数量并计算每次都需要它作为
item.current_qty = sum(item.input_movements.qty) - sum(item.output_movements.qty(这不是特定的语言,它只是伪代码)
考虑到,作为一个库存控制系统,每个项目的当前数量被大量使用。
注意:这个问题类似于this other,但这个问题特别是关于可以聚合的数据。
【问题讨论】:
-
这两种情况都可能是有效的,但也总是可以选择两者兼而有之 - 在可用于审计和详细检查的单独表中记录移动,在聚合主表中记录整体状态。
标签: database-design