2010-01-26 105 views
16

我想設計一個數據庫,它會記錄金融交易。我想將它設計成一個產品,以便它可以用於任何類型的金融交易。有一些特定於金融交易數據庫設計的設計原則,可以通過最小的架構級別更改,幫助我長期使數據庫更持久。一些很好的示例也將非常有幫助。金融交易系統數據庫體系結構設計原則?

感謝

回答

18

有些東西特別是金融系統包括內部控制(T他是一個關鍵的會計術語,做一些研究,真正想到這一點)。諸如輸入支票值的人不能同意。比如使用存儲過程,而不是應用程序生成的SQL,以便您可以將權限限制爲只有特效(在金融系統中永遠不會有動態SQL),因此用戶只能執行他們有權執行的操作。沒有任何人的權利,除了生產dba和桌子的替代品。欺詐是你試圖保護系統不受外部攻擊的原因。安全對金融系統至關重要。

您還需要審計表來了解誰更改了哪些數據以及舊值的時間和用途。這不僅是幫助發現問題的另一種方式,如果有人繞過內部控制(或者系統忘記執行某些關鍵控制)偷錢,但無需恢復就能夠消除錯誤通常是至關重要的。一般而言,會計系統通常具有用戶無法查看的數據字段,這些數據字段是通過默認值或以用戶看不到的方式生成的。

的另一件事是,你需要查看時間行動這樣的事情可能看起來像一個自然的關係,可能需要非規範化爲了維護成本是在動作發生的時間。所以如果你有一個小時費率表,你可以使用它作爲查詢來獲得動作時沒有加入的費率,以便在查詢時獲得費率。

金融系統中有私人數據,幾乎總是想着你將如何保護這些數據。您將需要加密和解密數據。您可能也需要加密備份。

這些數據是公司的生命線,重要的是你有一個很好的備份計劃和大量的恢復練習。非現場備份至關重要。

數據完整性至關重要。您需要正確的數據類型,並且您需要pk/fk關係,約束和觸發器來執行規則。金融體系無法承擔孤立的記錄。

你需要考慮刪除非常小心。金融系統通常會進行軟刪除(將記錄標記爲已刪除以避免丟失歷史數據)是的,XYZ公司不再是客戶,但您不想失去他們過去訂單的財務記錄,我甚至不會考慮在財務系統中使用級聯刪除

不要只是與會計師談論設計系統,與財務人員誰將運行系統和審計人員將審計結果閱讀和了解已發佈的會計準則對於您所設計的國家而言,看看稅務影響這是複雜的東西

考慮數據倉庫和歸檔數據財務系統通常會向舊數據查詢報表,對於財務系統報表大,大,大。想想如何去做有效地不影響日常數據輸入。

3

根據一個你實際上是試圖實現,爲您打造一個「金融交易」系統,該系統將需要自學有關刊物,賬簿和會計等細節有用。它不是爲表中的記錄實際交易一樣簡單......

真的,我不認爲你會發現數據庫設計原則是一切從需要它的任何數據庫系統不同的金融體系信息是100%正確的。

因此,閱讀下面的使用數據庫時,從來沒有傷害過任何人:

Database Design Best Practices

Do you source control your databases?

Database Development Mistakes Made by App Developers

What are some of your most useful database standards?