2016-05-30 93 views
0

現在我很困惑,爲財務交易系統設計好的架構。 例如: 我有一些表:最佳實踐:單獨或單個數據庫?

  1. MSMembers(用於提供會員資料和會員的用戶名密碼)
  2. TRTransactions(表記錄的是來自其他主機的所有事務,諸如會員主機)
  3. MSFees(名單
與交易的數量與分層費)

在我看來,我認爲我可以:

  1. 分隔事務和主數據的數據庫。例如, DBMaster:MSMembers,MSFees; DBTransaction:TRTransactions 所以我的應用程序(我的TransactionService不是網絡),必須連接到多個數據庫,如果我的服務連接到多個數據庫,它是有效的嗎?
  2. 或者與第1點相同,但我在DBTransaction中創建了MSMembers和MSFees,因此TransacionService不需要連接到多個數據庫。

請一定建議這種情況。

以前感謝。 :)

+0

你在看什麼樣的金融交易?無論如何,我相信有一個問題的一部分的答案,所以建議不要關閉,而我寫它 –

回答

0

沒有理由去使用單獨的數據庫,除非你在MySQL上(在這種情況下database意味着schema在其他數據庫中)。另外,還不清楚爲什麼你會首先將它們分成不同的模式。除非你想有效地使用不同的模式來管理應用程序的不同側面,否則沒有什麼可以從中獲益。

因此,把所有東西放在一個數據庫中。這種方式更容易,並且您可以在部件之間實施真正的數據庫約束(參考完整性等)。

+0

嗨克里斯,謝謝你的迴應。實際上,我認爲我想分離,因爲1個數據庫服務器由許多使用交易的表和1個數據庫服務器來管理網絡內容或管理費用交易,客戶數據,用戶管理等。爲了您的信息,我使用postgresql。 :) –

+0

有句話說「過早優化是萬惡之源」。 PostgreSQL非常非常好地擴展(現在出來)。並且鑑於金融交易表不僅可能是數據庫中最大的數據庫,而且通常只能追加(因此可以處理可以順利前進的餘額點),所以沒有理由使用多個數據庫。 FWIW我使用高達11TB的dbs,每天處理大約200萬db的寫入交易..... –