Database design 我应该在个人理财应用程序中存储当前余额吗?

Database design 我应该在个人理财应用程序中存储当前余额吗?,database-design,finance,Database Design,Finance,我正在尝试为个人理财应用程序设计数据库结构 基本上,我将有一个交易表,它将存储费用和收入,除此之外,我还想有另一个表(我想预算表)来存储当前余额 存储当前余额并在每次我必须在交易中插入一行时更新它是否正确 也许最好根据交易类型(费用或收入)来计算 有一个类似的问题,但我认为有更好的方法来处理这类数据 我认为没有最佳实践,这几乎总是取决于,但我应该选择哪种db结构 谢谢。将计算出的信息存储在数据库中几乎总是灾难性的。它很容易失去同步 当您需要它时,或者如果您的数据库支持使用视图时,您最好计算它。这

我正在尝试为个人理财应用程序设计数据库结构

基本上,我将有一个交易表,它将存储费用和收入,除此之外,我还想有另一个表(我想预算表)来存储当前余额

存储当前余额并在每次我必须在交易中插入一行时更新它是否正确

也许最好根据交易类型(费用或收入)来计算

有一个类似的问题,但我认为有更好的方法来处理这类数据

我认为没有最佳实践,这几乎总是取决于,但我应该选择哪种db结构


谢谢。

将计算出的信息存储在数据库中几乎总是灾难性的。它很容易失去同步


当您需要它时,或者如果您的数据库支持使用视图时,您最好计算它。

这不是一个非黑即白的答案,它取决于您的非功能性,即访问您网站的用户数量。您可以有一个“两全其美”的解决方案,在该解决方案中,您只能在更新基础事务时进行计算。这是我在创建时使用的方法


这意味着可以非常快速地读取计算结果,并且可以在后台进行重新计算,用户看不见,但对于大多数配置来说是最佳的

除非每个用户都有大量的事务,否则几乎可以肯定,每次显示余额时计算余额会更好。SQL在这方面非常有效。