私は最近、EAVデータベース構造に大きく依存するシステムを継承しましたが、パフォーマンスの観点からは本当に苦労しています。
私がやりたいのは、nhibernateまたは別の適切なORM製品を使用して、行をプロパティにマップできるように、これらのEAVテーブルをエンティティにマップすることです。次に、データベースをリファクタリングして、リレーショナルにすることができます。これが可能かどうか誰かが知っていますか?例もいただければ幸いです。:)
構造の感触を与えるために、次のようになります。
Entity(EntityId)EntityVarchar(EntityId、VarcharValue)EntityFloat(EntityId、VarcharValue)
等々。Customerエンティティがある場合は、Customer.Varchar ["Name"]ではなく、Customer.Nameと言って名前を取得します。
私たちのシステムではEAVモデルを使用する必要はなく、データ構造の実行時の変更は許可されていないことに注意してください。とにかくそれは悪い習慣だと思います。