想象一下,您需要实施一个系统来记录您的支票账户交易。通常,交易在您的对帐单上按月份分组。每个月都有期初余额和期末余额。开始日期和结束日期之间的每笔交易都会增加或减少余额。您希望能够告诉您当前的余额。
表示这些数据的好方法是什么?我想出了这两个基本选择:
所有交易的一张大桌子。要确定当前余额,请汇总所有交易。最大的缺点:交易列表增长得越长,它变得越慢。所以我怀疑这不是银行会做的事情,也不是任何真正实现这一点的人。
与之前相同,但带有额外的“快照”信息,例如“月末余额”表。这样,要确定当前余额,只需将当前月份的交易添加到最近的快照中,速度就会快得多。不利的一面是,如果交易迟到,或者过去记录不正确,则必须更新快照。(银行不应该经常发生这种情况——我希望——但如果你的会计期——比如你的私人生活——超过一个月的话,其他人可能会发生这种情况)
我想知道现实世界的系统是如何做到这一点的。