gpt4 book ai didi

sql-server - 数据库设计 : Calculating the Account Balance

转载 作者:太空狗 更新时间:2023-10-30 01:37:37 24 4
gpt4 key购买 nike

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

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

然后,我会将所有“金额”值相加,得出用户的账户余额。


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

有什么建议吗?

编辑:选项 2:我是否应该在我的交易表“余额”中添加一个额外的列。现在我不需要通过很多行数据来执行我的计算。

例子约翰购买了 100 美元的信用额度,他欠了 60 美元,然后他增加了 200 美元的信用额度。

金额 $100,余额 $100。

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

金额 $200,余额 $240。

最佳答案

一个从未被优雅解决的古老问题。

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

正确的做法是:

  • 移动台有一个“开口”每个账户的余额交易。你需要几年后当你需要将旧 Action 移出主动运动表到历史表。
  • 帐户实体有余额领域
  • 运动有触发器更新帐户的表贷方和借方账户的余额。显然,它有 promise 控制。如果你不能有触发器,那么需要有一个独特的模块,它在 promise 控制下编写 Action
  • 你有一个“安全网”计划可以离线运行,重新计算所有天平和显示器(和选择性纠正)错误余额。这对测试。

一些系统将所有移动存储为正数,并通过反转从/到字段或使用标志来表示贷方/借方。就个人而言,我更喜欢贷方字段、借方字段和签名金额,这使得冲销更容易跟踪。

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

证券交易可能会更加棘手,尤其是对于公司行为,您需要处理一个交易来更新一个或多个买卖双方的现金余额、他们的证券头寸余额以及可能的经纪人/托管人。

关于sql-server - 数据库设计 : Calculating the Account Balance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4373968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com