【发布时间】:2014-02-24 23:35:56
【问题描述】:
假设您需要实施一个系统来记录您的支票账户交易。通常,交易在您的对帐单上按月份分组。每个月都有期初余额和期末余额。开始日期和结束日期之间的每笔交易都会增加或减少余额。您希望能够知道您当前的余额。
表示这些数据的好方法是什么?我想出了这两个基本的选择:
一个大表用于所有事务。要确定当前余额,请汇总所有交易。最大的缺点:交易列表增长得越长,它变得越慢。所以我怀疑这不是银行会做的事情,也不是任何真正实现这一点的人。
与之前相同,但有额外的“快照”信息,例如“月末余额”表。这样,确定当前余额,只需将当前月份的交易添加到最近的快照中,速度快得多。不利的一面是,如果交易迟到,或者过去记录不正确,则必须更新快照。 (银行不应该经常发生这种情况——我希望如此——但如果你的会计期——比如你的私人生活——超过一个月的话,其他人可能会这样做)
我想知道现实世界的系统是如何做到这一点的。
【问题讨论】:
-
我认为问题属于dba.stackexchange.com
-
这是一个数据建模/表示问题,恕我直言,不是 dba 问题。甚至与关系数据库本身也没有直接关系......
-
嗯,我有点希望我错了,而不是我的领域。 :)
标签: sql database database-design bank