在库存控制系统中,它在数据库中记录以下实体(当然这已经过度简化):
哪种策略最好,原因如何:
item.current_qty = sum(item.input_movements.qty) - sum(item.output_movements.qty
(这不是特定语言,它只是伪代码)考虑到作为库存控制系统,每个项目的当前数量都会被大量使用。
注意:此问题与this other类似,但此问题特别关于可汇总的数据。
答案 0 :(得分:3)
选项B是标准化的 我已经在我为客户端制作的ERP中这样做了,使用Access作为前端,使用SQL Server作为后端。到目前为止,大约有250,000个动作,它仍然很活泼。
我认为这取决于您的卷以及您正在使用的数据库引擎。例如,如果它是Access,则没有触发器,我不会依赖前端逻辑。在SQL Server上,您可以进行非规范化,并在每次移动时重新计算数量,最后在出现问题时进行重新计算。
最适合我的方式:看看Allen Browne提供的问题的优秀分析here。