2つまたは3つのデータベーステーブルを共有するいくつかのアプリケーションを設計しており、他のすべてのテーブルは各アプリから独立しています。共有データベースには主にユーザー情報が含まれており、他のテーブルを共有する必要がある場合もありますが、それが私の本能です。
参照整合性が必要なため、すべてのアプリケーションソリューションに対して1つのデータベースに頼っています。各データベースで同じ情報を最新の状態に保つ必要はありませんが、おそらく最後に10個のテーブルのグループのみが関連情報を持つ100以上のテーブルのデータベース。
アプリケーションごとのデータベースアプローチは、すべてをより整理された状態に保つのに役立ちますが、すべてのデータベースの関連テーブルを最新の状態に保つ方法がわかりません。
したがって、基本的な質問は、両方のアプローチのどちらをお勧めしますか?
ありがとう、
ホルヘ・バルガス。
編集1:
参照整合性を持たないことについて話すとき、それは、テーブルが異なるデータベースにある場合、テーブルに外部キーを含める方法がないためです。アプリケーションごとに少なくとも1つのテーブルには、共有の1つへの外部キーが必要です。テーブル。
編集2:
関連する質問へのリンク:
2番目のものだけが受け入れられた答えを持っています。まだ何をすべきかを決めていません。
答え:
アプリケーションごとにデータベースを使用し、共有データベースへのクロスデータベース参照を使用し、共有データベースのテーブルを模倣するビューを各データベースに追加し、NHibernateをORMとして使用することにしました。メンバーシップシステムとして、asp.netシステムを使用します。
また、トリガーと論理的削除を使用して、親なしでリヴィン・ラ・ヴィダ・ロカを飛び回るIDの数を最小限に抑えようとします。データベースの同期を維持するために必要な開発作業は多すぎ、見返りは少なすぎます(皆さんが指摘しているように)。だから、私はむしろ孤立したレコードを介して自分の道を戦うことを望みます。
ORMとビューの使用が最初にsvintoによって提案されたので、彼は正しい答えを取得します。
この難しい決断を手伝ってくれたすべての人に感謝します。