1
class Room
  has_many :room_markers
  has_many :rooms, through: :room_markers
end

class Marker
...
end

class RoomMarker
  belongs_to :room
  belongs_to :marker
end

如上所述,我有一组课程。

现在我意识到这Room可能has_and_belongs_to_manyMaeker而不是has_many_through

现在我的问题是“我应该重构那些模型吗?有 has_and_belongs_to_many关联而不是has_many_through”。

如果我继续使用现有设计,是否存在任何与性能相关的问题?

4

1 回答 1

1

越简单越好。如果你不需要额外的模型,你应该重构。

最简单的经验法则是,如果您需要将关系模型作为独立实体使用,则应该设置一个 has_many :through 关系。如果您不需要对关系模型做任何事情,那么设置 has_and_belongs_to_many 关系可能会更简单(尽管您需要记住在数据库中创建连接表)。

导游

我认为您不必担心此级别的性能,只需选择适合您需求的解决方案即可。

于 2013-10-09T03:52:10.937 回答