現在、さまざまなルックアップテーブル(性別、州など)を作成して、静的データ(性別、結婚状況、州など)をDBに保存しています。ほぼ10個のルックアップテーブルがあります。これらのテーブルはすべて、トランザクションテーブルへのFKです-user(すべてのユーザーの人口統計情報を格納します)。これらの静的データの一部は、他のトランザクションテーブルでも使用されます。これで、ユーザー情報を取得するときに、通常、これらのテーブルに結合を設定して、関連するテキストを取得します。確かに、これらの多くの結合はパフォーマンスの問題を引き起こす可能性があります。また、MSDNによると、選択クエリに5つを超える結合を含めることはできません。これを回避するために、すべての静的データをxmlファイルに移動し、それらから読み取ることができます。確かに、xmlデータをキャッシュして、一度だけ読み取られるようにします。私が知りたいのは、それは良いアプローチです。以下のトレードオフを見ることができます-
- 参照整合性を維持できません。
- 負荷分散を使用している間、すべてのサーバーにxmlファイルが必要です。
これらはローカライズする必要があるため、値を列挙型にしたくありません。xmlに保持することの唯一の利点は、DBへのオーバーヘッドを削減することです(10個のテーブルを作成します)。DBに保存されている静的データを非常にうまくキャッシュできます。では、データをxmlに保存することは、DBよりも良い選択であることを知りたいですか?
PS:アプリケーションはWebアプリであり、.net3.5で開発されています。