例如,我们的应用程序跟踪农场的动物活动和价格。要获得当前的库存数量,最简单的解决方案是有一个起始编号,然后将所有进出的移动相加,直到我们得到一个当前编号。但这是内存密集型的,并且随着移动数量的逐年增长而变得越来越慢。
我们没有“冻结”一年的奢侈,所以它不能再接受变化,系统必须能够随时处理机芯的变化,然后实时显示更新的数字。
这不仅仅是股票数量;我们必须跟踪大量这样的变量,并为每个时期(日、周、月、年)编写报告,其中包括基于这些变量的汇总计算。
为了计算和报告目的,处理跨越多年的数据流的最常见、首选、“最佳”、最快、优雅的方法是什么?在这种情况下,数据库设计和架构将如何关联(即,只要数据库模式设计良好,使用 ORM 就可以了吗?)。这里的关键要求是最佳性能和实时可用性。
我已经在大型系统中看到过这样的工作被分成时间片,例如周、月、年汇总表。如果有解决这个问题的通用设计模式,我特别感兴趣。