【问题标题】:Should I move from has_many :through to has_and_belongs_to_many我应该从 has_many :through 移动到 has_and_belongs_to_many
【发布时间】:2013-10-09 02:39:55
【问题描述】:
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_many 关联 Maeker 而不是 has_many_through

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    来自guides。

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

    【讨论】:

    • 我猜,它主要是关于约定的。由于存在一个额外的模型,因此可能会出现性能问题。
    猜你喜欢
    • 1970-01-01
    • 2011-08-11
    • 2011-02-11
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    相关资源
    最近更新 更多