0

一般的なデータベース設計の質問があります。既存のテーブルに新しいテーブルを追加するのではなく、新しいデータベースを作成する方がよいのはいつですか。質問は、設計/保守性とパフォーマンスの問題に関連しています。

背景:RM2と呼ばれるDBに毎晩データをインポートすることにより、顧客のメインテーブルをミラーリングしています。一部の新しい(ASP.Net-)プロジェクトもこのデータにアクセスする必要があります。プロジェクトごとに新しいデータベースを作成するか、それらのテーブルをRM2(現在のサイズ:37991.94 MB)とマージする必要があるかどうか疑問に思っています。

4

3 に答える 3

3

私は必ずしもあなたの質問に答えるわけではありませんが、他にも考慮すべき質問をたくさんあげます。

  1. データベースのファイルグループにファイルを追加する必要があるのはいつですか?-ファイルが大きくなりすぎる場合、「大きすぎる」というのは意見の問題かもしれません。
  2. データベースに新しいファイルグループを追加する必要があるのはいつですか?-さまざまなデータベース操作のためにディスク使用量を最適化できるようにしたい場合。
  3. データベースに新しいスキーマを追加する必要があるのはいつですか?-論理的に関連し、ユーザーに対して異なるデフォルトの権限を必要とする可能性のあるオブジェクトのセットがある場合。
  4. アプリケーションに新しいデータベースをいつ追加する必要がありますか?-2つのデータベースのいずれのテーブル間でも参照整合性が必要ない場合。所有権が連鎖する権限が2セットのオブジェクト間で交差することを許可したくない場合。独立してバックアップと復元を行う場合。2つのデータセットに対して異なるSQLServerリカバリモデルが必要な場合。

私はそれがあなたの質問にいくらか答えたかもしれないと思います。;-)

于 2010-07-12T11:30:50.197 に答える
1

これはデータベース設計の問題ではありません。これは組織的な質問です。この質問の組織的な側面は、技術的な質問よりもはるかに重要です。

答えは次のとおりです。開発者としての生活を最も簡単にするものは何でも

たとえば、次のように言います。

一部の新しい(ASP.Net-)プロジェクトもこのデータにアクセスする必要があります。

これらのプロジェクトはあなたのプロジェクトとどの程度統合されていますか?実際にデータを共有しますか(または同じテーブルに書き込みますか)?たとえば、テーブルの1つに重大な変更を加えた場合、他のプロジェクトのコードにも同時に変更を加える必要がありますか?(2つのプロジェクト間で同期するのが非常に難しい場合があります)。

実際にデータを共有しない場合(事実上読み取り専用であると私が想定している顧客データを除く)、個別のデータベース(またはスキーマ)を使用します。これにより、変更の管理が非常に簡単になります。

もう1つのトリックは、各データベースに、別のスキーマの別の場所にある顧客データに対する一連のビューを用意することです。

したがって、プロジェクトごとにデータベースを作成し、各データベースで顧客データを表示します。このデータベースは、単一の個別のデータベースに存在します。

データベースが別々のマシン上にある場合を除いて、パフォーマンスは実際には問題にはなりません。

于 2010-07-12T12:10:38.083 に答える
0

自己データベースのみを使用するプロジェクトがある場合は、プロジェクト用に他のデータベースを取得できます。ただし、このデータセンターを取得する場合は、プロジェクトごとに他の共有データベースと自己データベースを作成する必要があります。

于 2010-07-12T11:22:10.507 に答える