何万ものスナップショットレコードを持つアプリケーションがあります。これらの「スナップショット」のごく少数(たとえば1000分の1)は、:has_manyアソシエーションを介して1つ以上の「位置」を持ちます。
スナップショットごとにアクティブレコードクエリを実行せずに、スナップショットに位置があるかどうかを効率的に検出するにはどうすればよいですか?私の現在の解決策は、スナップショットにブールフィールドを追加することです。スナップショットに位置がある場合、「has_position」はtrueに設定されます。ポジションを作成するたびに関連するスナップショットを変更する必要があるため、これは少し面倒に思えます。このシナリオを処理するためのよりクリーンな方法はありますか?
create_table "snapshots", :force => true do |t|
t.datetime "created_at",
t.datetime "updated_at",
t.boolean "has_position",
end
create_table "positions", :force => true do |t|
t.integer "snapshot_id"
t.datetime "created_at",
t.datetime "updated_at",
end