将事务处理条目存储到双重条目会计数据库中。数据库设计:会计事务处理表
我想出了两个解决方案选项1和选项2,我被告知大多数银行包为他们的数据库设计选择选项2。不过,我更喜欢选项1而不是选项2,因为它非常有意义,而且效率更高!
即,对于资金的两次转移,选项1需要2条记录,选项2需要4条记录。
我想知道为什么银行会选择期权2而不是期权1?这是什么原因?
Option 1)
TRANSACTION
Credit_AccountId
Debit_AccountId
Amount
...
Option 2)
TRANSACTION
AccountId
Amount
...
谢谢,我可以看到你的观点复杂的交易。 – 001 2010-12-11 06:02:47
谢谢你的回答@Justin Cave,请你帮我解答当前的余额栏,我们使用模型2进行交易,并且还有一个帐户表和余额栏。余额字段在每个事务之后更新,对于并发问题,我们在帐户表上使用了行级锁。每一件事情都很好,直到我们需要使用两阶段提交,这是由于多平台Java和.Net,以及...我们面临着很多帐户表暂停锁定。特别是“交易等待锁定”。 DBA正在手动终止会话并删除锁定。设计不正确? – 2013-06-30 14:09:25
@ M.Heydari - 这看起来更适合一个新的问题 - 评论不是真正适合扩展讨论的地方。我不会在交易系统中维护一个总值。如果您确实发现聚合是绝对必要的,请使用物化视图。 – 2013-06-30 18:09:50