【发布时间】:2013-01-07 16:49:03
【问题描述】:
我们的团队需要为内部创建的 ERP 系统跟踪库存。我们将需要经常访问给定仓库中给定项目的系统中的库存量,并能够跟踪库存的变化和时间。
最初的想法是只拥有调整表并在每次查看时计算当前库存。通过我们的测试,很明显,考虑到我们每天要进行多少次计算,这种计算的成本太高了。
我们的新想法是创建一个包含历史记录的调整表,同时保留一个包含当前库存的表。当进行调整时,我们的程序将同时更新调整表和当前库存表。我不太喜欢这个解决方案,因为它需要 2 次更新才能进行一次更改。万一失败了怎么办?当调整不反映库存表中的内容时,您如何进行核对?
有人有更好的方法吗?
【问题讨论】:
-
我建议在事务中进行更新,因此如果一个更新成功而另一个失败,则两者都将被回滚。
-
你也可以在插入一个表时使用触发器,然后在当前表中的更新将在历史记录中插入
-
由于程序设计的原因,我无法将它们都包含在事务中。您一次只能更新一张表(我知道这是愚蠢的设计......我正在努力改变它,但这需要一段时间)。
标签: sql transactional erp inventory-management