2016-05-30 6 views
0

私は財務的なトランザクションシステムのための良いアーキテクチャを設計するために今混乱しています。たとえば : 私はいくつかのテーブルがあります。ベストプラクティス:個別または単一のデータベースですか?

  1. MSMembersをなメンバーのよう
  2. TRTransactions(テーブルレコード他のホストから来ているすべてのトランザクション、(メンバープロフィールとメンバーのユーザ名・パスワードを提供するために)ホスト)
  3. MSFeesトランザクションの数に関連階層化料金について(リスト)
私の意見では、私は私がすることができると思う

  1. は、トランザクションとマスターデータ用のデータベースを離しておきます。たとえば、 DBMaster:MSMembers、MSFees; DBTransaction:TRTransactions 私のアプリケーション(Webではなく、私のTransactionService)は複数のデータベースに接続する必要があります。サービスが複数のデータベースに接続すると効果的ですか?
  2. また、ポイント1と同じですが、DBTransactionでMSMembersとMSFeesを作成するので、TransacionServiceは複数のデータベースに接続する必要はありません。

このケースについては助言をお願いします。

ありがとうございます。 :)

+0

どのような種類の金融取引を検討していますか?とにかく私はあなたの質問の一部に答えがあると思うので、私はそれを書いている間閉じることをお勧めします –

答えて

0

あなたがMySQLを使用していない限り(別のデータベースではdatabaseschemaを意味します)、別のデータベースを使用する理由はありません。さらに、なぜこれらを最初に別のスキーマに分けるのかは不明です。異なるスキーマを効果的に使用してアプリケーションのさまざまな面を管理したい場合を除き、実際には何も得られません。

すべてを1つのデータベースに保存してください。このように簡単にでき、パーツ間で実際のデータベース制約(参照整合性など)を強制することができます。

+0

こんにちはクリス、あなたの応答のおかげで。実際には、トランザクションで使用する多数のテーブルと1つのデータベースサーバーで構成された1つのデータベースサーバーが、Webコンテンツを管理したり、有料トランザクション、顧客データ、ユーザー管理などの管理を行うため、私はpostgresqlを使用します。 :) –

+0

「時期尚早の最適化はすべての悪の根源です」という言葉があります。 PostgreSQLは非常にうまくスケールアップされています。金融取引テーブルがデータベース内で最大のものになる可能性は高いだけでなく、通常は追加されるので、複数のデータベースを使用する理由はありません。 FWIW私は約11TBのdbsで約200万dbのトランザクションを処理します。 –

関連する問題