2017-06-07 12 views
1

私は現在、Web APIなどを使用してASP.NET MVCアプリケーションに再構築しているwinformsアプリケーションを構築しました。アーキテクチャ:サブ顧客用の1つまたは複数のデータベース(Web)APP

私はこれらのアプリケーションをいくつかの顧客に提供することを前提としています。 私のアプリケーションは顧客会計用に作られています。 私のすべてのお客様はお客様に私が提供するアプリケーションを管理しています。

それは私の質問に私をもたらします。顧客のために1つの大きなデータベースで作業する必要がありますか、または顧客ごとに個別のデータベースを使用する必要がありますか?私は、Webアプリケーションのインスタンス、APIなどのために同じ質問したいと思います。

テクニカル両方のオプションが可能だと思います。それが単に嗜好の集まりであれば、すべての入力が高く評価されます。

いくつかの長所と短所は、私はオフに考えることができます:

つのデータベース:

  • 簡単なセットアップに/
  • が私の顧客
  • のすべてのDBをリストアする可能性のための1つの更新プログラムをインストール維持を1カスタマーの場合
  • リソースの広がりに関して柔軟性がない
  • パフォーマンス、このdb can

    • preformanceの顧客は「大きな間違い」
    • をした場合
    • データを復元するために簡単
    • 、データベースはサイズ小さく、複数のサーバで分散させることができます。本当に大きな

    複数のデータベースを取得します

  • セットアップ/保守が難しく、すべてのインスタンスを別々に更新する必要があります。
  • ゲートウェイ/ルーティングの事のようなものが右datbase /アプリ

にルートユーザーに必要とされている私は、どのように「大企業」アプローチにこのことを知っていただきたいと思います。

答えて

2

データベースのマルチテナントについて話しているようで、あなたは賛否両論について正しいです。

これに対する答えは、あなたが構築しているアプリケーションの種類と、それが持つ顧客の種類によって大きく異なります。

  1. アプリケーションは、マルチテナントアプリケーションである場合、私は、マルチテナント(単一DB複数のテナント)のデータベースとなるだろう。
  2. ユーザーは、独自のデータバックアップを保存する必要はありません。
  3. DBスキーマは各顧客ごとに変更されることはありません(マルチテナントアプリケーションではこれは暗黙的に暗黙指定されています)。
  4. あなたのテナント/顧客は膨大な量の個別データを持っていません。
  5. あなたの顧客は、遵守する必要のある政府のデータ分離法(EUのデータ、米国の米国のデータなど)を持っていません。

個々のデータベースでは、これらすべての点の逆数はほとんどありません。

関連する問題