数据库设计:计算账户余额

2023-12-28

如何设计数据库来计算账户余额?

1)目前我从交易表计算账户余额 在我的交易表中,我有“描述”和“金额”等。

然后,我将所有“金额”值相加,从而计算出用户的帐户余额。


我向我的朋友展示了这个,他说这不是一个好的解决方案,当我的数据库增长时,它会变慢???他说我应该创建单独的表来存储计算出的帐户余额。如果这样做,我将不得不维护两个表,并且有风险,帐户余额表可能会不同步。

有什么建议吗?

EDIT:选项 2:我应该在交易表“余额”中添加一个额外的列吗? 现在我不需要遍历很多行数据来执行计算。

例子 约翰购买了 100 美元的信贷,他借了 60 美元,然后他增加了 200 美元的信贷。

金额 100 美元,余额 100 美元。

金额 - 60 美元,余额 40 美元。

金额 200 美元,余额 240 美元。


这是一个从未得到优雅解决的古老问题。

我使用过的所有银行软件包都将余额存储在帐户实体中。根据运动历史即时计算它是不可想象的。

正确的方法是:

  • 机芯工作台有一个“开口” 每个账户的余额交易。你需要 几年后当你 需要将旧的机芯移出 活动运动表到历史记录 桌子。
  • 账户实体有余额 场地
  • 运动中有一个触发器 更新帐户的表 贷方和借方账户的余额。显然,它有承诺 控制。如果你没有触发器,那么就需要有一个unique在承诺控制下编写动作的模块
  • 你有一个“安全网”计划 可以离线运行,重新计算 所有天平和显示屏(以及 (可选地更正)错误的 余额。这对于 测试。

某些系统将所有移动存储为正数,并通过反转“起始”/“终止”字段或使用标志来表示贷方/借方。就我个人而言,我更喜欢贷方字段、借方字段和签名金额,这使得冲销更容易遵循。

请注意,这些方法同时适用于现金和证券。

证券交易可能会更加棘手,特别是对于公司行为,您将需要适应一项更新一个或多个买方和卖方现金余额、他们的证券头寸余额以及可能的经纪人/存款人的交易。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库设计:计算账户余额 的相关文章

随机推荐