我有一个系统,可以让用户输入金融交易,包括美元金额。一旦交易被添加\更新或从系统中删除,帐户总额必须重新计算并立即显示给用户。用户可以访问系统中的某些帐户,但不是全部。一个帐户的所有交易金额总和的有效计算方法
下面是持有帐户和交易数据的表格的屏幕截图的链接。
目前,以获得该帐户总我用下面的查询:
select sum(t.Amount)
from [Transaction] t
join [Account] a on a.AccountId=t.AccountId
where [email protected]
我对ACCOUNTID事务表中的非唯一的非聚集索引和金额列允许该查询通过AccountId快速查找交易。
它做我想要的,但我担心的是,交易表增长非常快,目前我有大约100万条记录,随着时间的推移,我预计它会达到数千万。此外,可以积极编辑交易的用户数量也在增长,我在系统中拥有大约5500个用户。
我正在研究一个解决方案来限制使用交易表时获得该帐户的总$,以便系统可以扩展。我有2个解决方案:
- 通过要求用户点击某个按钮时需要该信息来计算帐户总数。我可能会走这条路线,但我仍想通过实时更新账户总量来探索我的选择。
- 将运行总额存储在其他地方并用它来计算帐户总额。有一个限制与它相关联,因为所有事情都必须通过一个可以了解所有这些细微差别的单一界面来完成。编辑数据库中的交易记录会很棘手,因为您必须确保运行总额也已更新。
我在寻找其他替代方法来实时计算账户总额,而不用担心数据库性能。
墙上的文字!!!!请格式化一些!数据库模式也很好,你尝试过一些SQL! –
对不起,这是我的第一篇文章。我已经更新了它,使一些视觉效果更加干净。 – Art