数据库事务 - 或者这是一个规范化问题?

时间:2012-05-28 12:34:30

标签: sql database transactions normalization

让我们说一名学生就读于某一特定课程。他的总费用是25000美元(基于其他计算,如学费,杂费等)。

现在,这让我很困惑。 我如何获取计算学生的总剩余余额。我应该:

  1. 每次付款时,从他的总余额(我表中的一栏)中减去他支付的金额。

  2. 不要永远修改任何列,而是使用另一个名为total_fee列的属性。只需从我的tution_payment表中找到的每笔交易中获得的总金额,然后从total_fee中减去结果(这可以通过我的查询完成)。另请注意,我在这里没有使用total_balance。

  3. 我记得有人告诉过我

      

    通常只会插入财务交易

    这是否意味着我以前的解决方案是正确的?目前,我使用后者,但认为这是一个不准确的解决方案。

    我不熟悉数据库如何代表会计交易,因此非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

通常,会有一个包含交易的表格。学生费用将被记入大学学分并借给学生。还款将被记入学生的学分。利息费用将归功于大学。

这样,就没有必要存储余额。您可以根据交易历史记录计算余额。最大的优点是你可以解释平衡;它不仅仅是存储在数据库中的数字,而且还有完整的历史记录。