更新时间:2022-10-19 11:41:24
从插入角度看,选项1可能会更高效。但由于很多会计交易会影响两个以上的帐户,所以收益可能会大大低于2:1。
选项2会更清楚这些更复杂的事务。也就是说,会计师通常会找到三行
比两行更清楚
如果双方都有多个帐户,那么如何将借方和贷方与单个帐户进行匹配也不太清楚。也就是
可以表示为
,但也有其他可能的方法来建立资料模型2的资料。 p>
此外,如果您要通过聚合交易来确定特定帐户的当前余额,选项2会更加高效。
Storing the transaction entry into a double entry accounting database.
I came up with two solutions option 1 and option 2, I was told most banking package chooses option 2 for their database design. However I prefer option 1 over option 2 because it simply makes sense and it is more efficient!
I.e For the 2 movement of funds, option 1 requires 2 records vs option 2 requires 4 records.
I would like to know why the bank would choose option 2 over option 1? what is the reason for this?
Option 1)
TRANSACTION
Credit_AccountId
Debit_AccountId
Amount
...
Option 2)
TRANSACTION
AccountId
Amount
...
Option 1 will potentially be a bit more efficient from an insert perspective. But since a lot of accounting transactions are going to affect more than two accounts, the benefit is likely to be substantially less than 2:1.
Option 2 will be clearer for these more complex transactions. That is, an accountant would normally find three rows
more clear than two rows
If you have multiple accounts on both sides, it would also be a bit unclear how to match up the debits and credits to a single account. That is,
could be represented as
but there are also other possible ways to construct the data for data model 2.
Additionally, option 2 is going to be more efficient if you're trying to determine the current balance of a particular account by aggregating the transactions.