数据库设计:存储帐户余额的位置?

时间:2012-03-22 12:45:44

标签: mysql sql-server database oracle database-design

  

可能重复:
  Database design: Calculating the Account Balance
  should the user's Account balance be stored in the database or calculated dynamically?

存储用户帐户余额的最佳位置在哪里?为什么?

1)“交易”表,在交易发生时计算或

2)“帐户”表,每次用户登录时或交易发生时都会更新。

1 个答案:

答案 0 :(得分:1)

根据规范化规则,您不应存储可以根据其他数据计算的内容。

话虽如此,哪家银行不存储呢?这是您进行去标准化以提高性能的地方,因为系统的许多部分都使用了余额,并且无法在每次需要余额时计算所有交易。

有一个替代方案可以在一夜之间计算出合并后的价值,然后根据自上次合并以来的交易调整价值。