將事務處理條目存儲到雙重條目會計數據庫中。數據庫設計:會計事務處理表
我想出了兩個解決方案選項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