2011-07-01 17 views
0

私はMVC3で4つのウェブサイトビルドを含むウェブプロジェクトを計画しています。 databaseserverとして、私はms SQLサーバーを使用します。は4つのウェブサイトの間でデータを共有します

それぞれのウェブサイトには、40個のテーブルがあります。しかし、いくつかの表はウェブサイト間で共有されています: 連絡先、都市、郵便番号、国...

どのように対処しますか?各データベースのすべてのテーブルを共通のデータベースに入れるべきです(つまり、Webサイト1,2,3とWebサイト4のデータベースは1つのデータベースにまとめられます)。または、共有データベースを含む1つのデータベースを作成する必要がありますか?

しかし、私はデータのコンシメンタンスに問題があると思います。あるデータベースから別のデータベースへポイントする方法がないと思います(データベース1のcitytableとデータベース2のデータテーブルをリンクしてください)。

アイデア? ありがとう!

+0

パブリック/顧客向けウェブサイトの場合は、SQL Azureの使用を検討しましたか? –

答えて

0

私は別のデータベースに分割するのが好きなのは、各Webサイトに独自のデータベースがあり、そのWebサイトの1つが非常に人気がある場合、データベースを別のより強力なものに移動するのは非常に簡単です(a)中央の「制御」データをリモート(または複製/ミラー/ etc)で参照する必要があること、(b)そのWebサイトを別のデータベースサーバで指し示すことを除いて、あまり変更する必要はありません。もう1つの利点は、2つのWebサイトで同じタイプのテーブル(Patientsなど)を使用する場合、Patients_WebSite1、Patients_WebSite2などのテーブルを持つ必要がなく、テーブル名(または醜い動的SQLプロシージャテーブル名をに貼り付けてください)。分離されていれば、全員のデータを1つのテーブルにまとめなくても、全く同じスキーマと同じコードベースを持つことができます。

単一のデータベース内でデータを混在させると、データの一貫性が向上し、セットアップ全体がややシンプルになりますが、成長するときに分割するのは非常に困難です。別のデータベースに分割すると、標準DRI(外部キー)を使用して参照整合性を強制することができなくなります。これが重要な場合(トリガー、挿入/更新前の検証など)、これを他の方法で実行できます。

関連する問題