0

マルチテナントシステムを設計しており、共有データベース、スキーマ共有、共有データテーブルを採用したいと考えています。

当社のテナントは、州 (米国の州)、郡、または個々の組織である可能性があるためです。次の図は、概要を示しています。(ここで、O1、O2.. は組織、U1、U2.. はユーザーです)

高レベルの要件

  1. は、その下に多くの組織を持つことができます。
  2. 組織は、その下に1 人以上のユーザーになります。
  3. 組織は、その下に1 つ以上の組織(サブ組織) を持つことができます。
  4. ある組織ユーザーが他の組織に所属することはできません。
  5. すべてのテナントには、組織/ユーザーに対して CRUD を実行できる独自の管理者がいます (組織の作成と組織へのユーザーの割り当てなど) 。
  6. スーパー管理者(当社の) は、任意のテナントをアクティブ化/非アクティブ化できます

以下は、高レベルの ER 図です。テーブルはテナント間で共有されるため、すべてのテーブルにtenant_id列があります。

組織は組織の下にネストできるため、Discriminator Columnを使用して自己参照テーブルを作成することを考えています。

私はこの ER 図を最適化/修正するための情報を探しています。誰かが ER に怒鳴り始める前に、私はプログラマーであり、DB の専門家ではないことを述べたいと思います :)。

ここに画像の説明を入力

4

0 に答える 0