2012-05-04 14 views
0

SQL Serverで約20個のテーブルを持つプロジェクトと、完成したASP.NETプロジェクトを作成しました。複数のデータベースの管理

最近、私たちのクライアントから、Siteという新しいパラメータについて語った。彼は、Applicationのプロジェクトデータに複数のサイトがあると言うと、各サイトごとに異なる必要があります。アプリケーションが完全に開発されて以来、いくつかの問題に直面しています。すべてのSQL Serverテーブルと、Applicationに関連するすべてのSQLクエリを、サイトごとに複数のデータベースを持つことを検討中のサイトパラメータに従って変更することはできません。

クライアントはプロジェクトあたり約20のサイトが存在する可能性があるため、状況は悪化します。だから我々にとっては、20のデータベースを管理することは非常に難しいでしょう。

この問題に適切な解決策を教えてください。

+0

Iドンとしてシステム全体のレポートを引っ張るしたい場合、それはメンテナンスの悪夢になるだろうあなたのシステムを知っているわけではないので、私は限られたアドバイスしか提供できませんが、例えば 'Site'を追加することはできませんでした。 1つのデータベースを持つために、データベースに「SiteID」を追加します.20データベースの混乱を作成するのではなく... –

+2

あなたはあなたの質問を期待通りに説明していないと思います。それはちょっと混乱している。 –

+1

サイトごとのデータベースが、同じプロジェクトのすべての部分は、おそらくあなたがアプリケーションの一部としてプロジェクトの分析を求め始めるとあなたに出くわすだろう。 – MartW

答えて

1

あなたが提案した解決策が正しいと思われます。サイトごとに異なるデータベースを使用してください(注:データベースサーバーは、トランザクション量に応じて20データベースすべてを簡単にホストできます)。

説明: 必要なのは、サイトごとにデータを分離することです。これは、表のデータにサイト識別子を追加することによって、またはサイトがデータストアを共有しないことを確認することによって行うことができます。後者はこの場合、最も簡単で最も費用対効果の高いソリューションです。

「データベースを維持する」ということは、それほど難しくありません。私の意見では、管理するデータとトランザクションの量と、手動による修正の数は、保守コストの重要な要素です。

+1

すべてのサイトのレポートはどうですか? –

+0

ポスターがこれを要件として挙げていませんでした。そうであれば、「元のデータベースのsiteIDに対処するために既存のコードをすべて書き直す」と「複数のサイトにまたがる必要があるレポートクエリを書き直す」とのトレードオフが行われます。 –

0

私はこれまでにこの道を歩いていました。サイトテーブルが作成され、サイトが所有するオブジェクトが作成された後、外部キー関係がSiteテーブルに追加されました。

私たちのケースでは、サイトが所有するオブジェクトが3つまたは4つしかないため、4つのテーブルを変更するだけでした。それから、そこからの関係はまだ機能し、変更は必要ありません。私は、サイトごとにデータベースのルートを行くだろう

あなたが将来的には、データベースの変更を加える必要がある場合や、あなたが全体の

関連する問題