大量参赛作品:如何快速计算总数?

时间:2014-02-05 00:13:03

标签: database accounting

我正在编写一个相当大的应用程序,允许人们发送短信和电子邮件。我将按每条短信收取7c,每封电子邮件收取2c。我会允许人们“充值”他们的帐户。因此,最终结果可能是一个数据库表,其中包含一些小条目,如+100和许多条目,如-0.02和-0.07。

我需要在他们尝试发送电子邮件或消息时立即检查一个人的余额。

显而易见的答案是在某处缓存“total”,并在添加或删除某些内容时更新它。然而,正如在编程中一样,还有更多内容:月度报表怎么样,余额需要从上个月结转?我的“直观”解决方案是拥有两个级别的缓存:一个用于当前月份,一个条目用于每个月(或计费周期)三个条目:

  • 添加的总数
  • 取出的总数
  • 到那时的平衡

是否有更好的,既定的方法来处理这个问题?

1 个答案:

答案 0 :(得分:0)

很大程度上取决于RDBMS。

如果是SQL Server,一种解决方案是创建Indexed view(或视图)以自动递增计算并保持聚合值。

另一种解决方案是,只要以最精细的细节粒度插入行,就会使用触发器进行聚合。