質問

モジュラーアプリケーションを構築しています。設定により、これらのアプリケーションモジュールのオンとオフを切り替えることができます。各モジュールのデータを保持するテーブルに使用するデータベース構造(mssql2005)を決定しようとしています。私が考えた2つのオプションは次のとおりです。

  1. すべてのテーブルを1つの大きなデータベースに入れ、モジュールに従ってテーブルにプレフィックスを付けます。
  2. 各モジュールのテーブルを異なるデータベースに分離します。

すべてのモジュールに共通するデータがあるため、ソリューション2を使用する場合、その共通データ(ユーザーなど)の管理方法がわかりません。

-

1つのことを明確にするために、これらのモジュールは個別に販売される可能性があり、構成設定はクライアントによって制御されないものです。これが、それらを別のテーブルに分割することを検討している理由です。

役に立ちましたか?

解決

あなたが提案したものに代わる私の推奨事項は、SQL Server 2005で利用可能なスキーマ機能です。

詳細については、このリンクをお読みください...

http://searchsqlserver.techtarget.com/tip/0 、289483、sid87_gci1184503,00.html

他のヒント

私なら、最初にアプリケーションを完全に正規化します。共有テーブル内にすべての共通データを配置し、特定のモジュールテーブル内の各モジュールに固有のデータのみを残す構造を開発します。

共有テーブルのデータがすべてのモジュールに本当に共通しており、これらの「共通」テーブルにまとめようとしているエッジケースがない場合、1つのモジュールをオンまたはオフにしても機能に影響はありません他のモジュールを使用すると、データの重複はほとんどありません(存在する場合)。

1つのデータベースがあります。これにより、ソリューションの管理が大幅に簡素化されます。

その後、データを正規化します。これにより、データの整合性の問題が単純化されます。

次に、必要に応じて各データベースのテーブルをベースデータベースに追加します。このベースデータベースを配布しますが、未使用のモジュールのデータは配布しません。各モジュールは、インストール時に独自のデータを配布します(おそらく、モジュール自体に組み込まれるのではなく、インストーラーによって)。

テーブルの接頭辞はどちらかといえば重要ではありません。データベースを共有することの良い点は、任意のモジュールから各テーブルにアクセスし、共有構成ファイルなどを持つことができることです。

テーブル全体にクエリが必要な場合は、それらを1つのデータベースに入れることをお勧めします。それ以外の場合は違いはありません。ただし、1つのデータベースを維持する方がはるかに簡単です。

複数のデータベースの要件がない限り、1つだけを使用することをお勧めします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top