我应该从has_many:到has_and_belongs_to_many

时间:2013-10-09 02:39:56

标签: ruby-on-rails performance has-many-through has-and-belongs-to-many

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“{/ 1}}。

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

1 个答案:

答案 0 :(得分:1)

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

  

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

来自guides

我认为您不必担心此级别的性能,只需采用符合您需求的解决方案。

相关问题