我们的团队需要跟踪库存,基本上是内部创建的ERP系统。我们将需要频繁地访问系统中给定仓库中给定项目的库存量,并能够跟踪库存发生变化的原因和时间。
最初的想法是只使用调整表,并在每次查看时计算当前库存。通过我们的测试,很明显,考虑到我们每天要做多少次计算,进行这种计算的成本太高了。
我们的新想法是有一个包含历史记录的调整表,但也保留一个包含当前库存的表。当进行调整时,我们的程序将同时更新调整表和当前库存表。我真的不喜欢这个解决方案,因为它需要两次更新才能进行一次更改。如果其中一个失败了怎么办?当调整没有反映库存表中的内容时,您如何协调?
有谁有更好的方法吗?
发布于 2013-01-08 01:05:55
如果您不能在单个事务中完成所有必要的更新,则需要一个管理过程(而不是声明性约束)来确保数据是正确的。例如,您可以运行cron作业,根据详细信息测试总数。执行此操作的频率取决于cron作业运行的时间,以及应用程序可以容忍的cron作业的时间。
我更喜欢在明细表上加上定期cron作业的触发器。让触发器调整每个事务的总数。cron作业确保没有遗漏任何更新。(大多数dbms都允许您禁用触发器以进行维护;当您不可避免地忘记再次启用触发器时,cron作业会提醒您。)
https://stackoverflow.com/questions/14200330
复制相似问题