インスタンスごとの構成に基づいて複数のインスタンスを実行するシステムを開発しました。
構成では、インスタンスに使用するデザイン、システムにアクセスできるグループなどを定義できます。
インスタンス(サイトと呼びます)はURLによって区別されます
例えば
- abc.company.org(A)
- cde.company.org(B)
- fgh.company.org(C)
ユーザーがアクセスしている現在のURLを確認し、インスタンスに使用する必要のある構成(デザイン、グループ)を確認します。
ユーザーは複数のインスタンスにアクセスできます。これは、ユーザーが関連付けられているグループによってチェックされ、グループの1つがこのインスタンス(サイト)にアクセスできるかどうかをチェックします。
これはすでに設計されています。
しかし、今はuser_setting
インスタンスごとに変更可能である必要があります(サイト)
サイトAのユーザーは、サイトBの同じユーザーとは異なる国、組織、役職などを持っています(これは、非論理的に見えても、残念ながら当てはまります)。
user_settings
したがって、このすべての情報を格納し、への外部キーを持つというテーブルを作成しましたsite
。ただし、このテーブルに必要なのは上記の列だけかどうかわからないため、このテーブルは時間の経過とともに水平方向に大きくなります。最終的には、サイトごとに変更するために100個の属性を追加する必要があります。
これを設計するためのより良い方法はおそらくありますか?
この設計をさらに正規化した場合に問題が発生するかどうかはわかりません。たとえば、テーブルを作成します(画像では緑色)。
より良い視覚化のために画像を参照してください:
誰かこれを経験しますか?提案は大歓迎です...