1

我们的团队需要跟踪内部创建的 ERP 系统的库存。我们将需要经常访问给定仓库中给定项目的系统中的库存量,并能够跟踪库存的变化和时间。

最初的想法是只拥有调整表并在每次查看时计算当前库存。通过我们的测试,很明显,考虑到我们每天要进行多少次计算,这种计算的成本太高了。

我们的新想法是创建一个包含历史记录的调整表,同时保留一个包含当前库存的表。当进行调整时,我们的程序将同时更新调整表和当前库存表。我不太喜欢这个解决方案,因为它需要 2 次更新才能进行一次更改。万一失败了怎么办?当调整不反映库存表中的内容时,您如何协调?

有没有人有更好的方法?

4

1 回答 1

2

如果您不能在单个事务中完成所有必要的更新,您将需要一个管理程序(而不是声明性约束)来确保数据是正确的。例如,您可以运行一个 cron 作业,根据详细信息测试总计。您执行此操作的频率取决于 cron 作业需要运行多长时间,以及您的应用程序可以容忍 cron 作业多长时间。

我更喜欢详细信息表上的触发器以及定期 cron 作业。让触发器调整每笔交易的总数。cron 作业确保没有错过任何更新。(大多数 dbms 允许您禁用触发器以进行维护;当您不可避免地忘记再次启用它们时,cron 作业会提醒您。)

于 2013-01-07T17:05:54.767 回答