1

人々がアクセスするためにログインしなければならないウェブサイトを計画しています。簡単です。ログインしたら、メンバーシップの情報に応じて、Web サイトで特定のデータベースを使用する必要があります。

したがって、同じ構造を持つ 100 のデータベースを使用できますが、特定のユーザー グループごとに異なるデータを使用できます。1 つの大きなデータベースを使用して、ID 列でアクセスできるデータを決定する代わりに。

私がここで意味を成しているのかどうかわかりません。基本的に、1 つの Web サイト、メンバーシップに応じて複数の Web サイト。

これを行う方法はありますか?効率的な別のアプローチはありますか?

ありがとう!!

4

1 に答える 1

2

私の理解が正しければ、まだ 1 つのメンバーシップ データベースしかなく、認証後、いくつかの基準に応じて、アプリケーションはユーザーに応じて接続文字列を切り替えますが、それは 1 つのアプリケーションにすぎません。

技術的には、一般的なデータ アクセス メカニズム (Linq2SQL、EntityFramework、SQLClient など) のすべてが実行時に接続文字列を提供できることを考えると、これは特に難しいことではありません。100 個の接続文字列を web.config に追加するか、別の場所 (最初のメンバーシップ DB など) に保存することができます。

ただし、長期的には、ユーザーのデータへの関連付けに基づいて特定のデータをフィルタリングし、1 つのデータベースのみを保持する方が簡単な場合があります。

検討

  • ユーザーが複数の「データベース」に相当するデータへのアクセスを許可されている場合はどうなりますか。1 つのデータベース モデルでは、user:data many:many テーブルに別のリンクを追加するだけです。
  • これで、バックアップ、インデックス作成などを行うデータベースが 100 個になりました (?license!)。
  • データを統合するレポートは、100 のデータベースにまたがって結合する必要があります
  • SQL キャッシングと接続プーリングは、これほど多くのデータベースでは効果的ではありません。
  • スキーマまたはストアド プロシージャを変更する必要がある場合はどうすればよいでしょうか。これをどこでも複製する必要があります。

于 2012-05-16T18:19:19.653 に答える