これがモデル/データベースセクションだけでなくパフォーマンスセクションにも当てはまるかどうかわからないので、ここに行きます....
3つのモデルがあるとしましょう:
Movie {
has_one :interest, :as => :resource
}
Song {
has_one :interest, :as => :resource
}
Story {
has_one :interest, :as => :resource
}
と ...
Interest {
belongs_to :resource, :polymorphic => true
}
ここで、すべての映画のすべての興味のリストが必要で、それらの Movies オブジェクトが作成された日付 (それらが何歳か) も表示したい場合は、resource_type 属性のルックアップを使用し、次に @some_interest.resource を使用します。 .created_at.
これの問題は、100 件の映画に興味がある場合、101 件のクエリが返されることです。だから線形劣化。クエリ呼び出しで :include => [:resource] を使用しようとしましたが、ポリモーフィック アソシエーションで include を使用できないと表示されます。
この深刻な劣化を回避するために、この問題を積極的にロードまたは最適化するにはどうすればよいですか??
どんな助けでも大歓迎です!!