我有一个包含数万条快照记录的应用程序。这些“快照”中的极少数(例如 1000 个中的 1 个)将通过 :has_many 关联具有一个或多个“位置”。
如何在不为每个快照触发活动记录查询的情况下有效地发现快照是否有位置?我目前的解决方案是在快照中添加一个布尔字段——如果快照有位置,'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