如何在数据库中保证货币(USD)余额

问题描述 投票:-2回答:1

我想知道人们如何安全地将资金余额存储在数据库中。例如,您如何确保数据库管理员不修改余额或交易?如何确保流氓员工无意或无意进行交易的代码无法正常工作。

银行,PayPal以及以美元或任何其他货币持有余额的任何其他应用都应该出现此问题

database security payment
1个回答
0
投票

我使用的所有银行业务包都存储了账户实体的余额。从运动历史中动态计算它是不可想象的。

正确的方法是:

  • 移动表对每个帐户都有一个“期初余额”交易。当您需要将旧动作从活动移动表移动到历史记录表时,您需要在几年内完成此操作。
  • 帐户实体具有余额字段
  • 移动表上有一个触发器,用于更新贷记和借记帐户的帐户余额。显然,它有承诺控制。如果你不能有一个触发器,那么需要一个独特的模块,它在承诺控制下写入动作
  • 您有一个可以离线运行的“安全网”程序,它可以重新计算所有余额并显示(并可选择更正)错误的余额。这对测试非常有用。

有些系统将所有运动存储为正数,并通过反转from / to字段或带有标志来表示信用/借记。就个人而言,我更喜欢信用额度,借方字段和签名金额,这使得逆转更容易遵循。

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

证券交易可能要复杂得多,特别是对于公司行为,您需要提供一笔交易,以更新一个或多个买方和卖方的现金余额,其安全头寸余额以及可能的经纪人/存款。


来自smirkingman回答Database design: Calculating the Account Balance

© www.soinside.com 2019 - 2024. All rights reserved.