在这种情况下效率更高 - 有很多通过或有很多?

时间:2012-02-15 19:18:08

标签: ruby-on-rails-3

在我的应用程序中,我有3个型号:

用户,页面,照片

照片属于一个页面,一个页面(它们只有一个)属于一个用户。然而,我的导航链接之一将是显示用户已提交的所有照片的网址(将经常使用) - 使用或使用它的最佳,最有效的关联是什么?

class User
  has_many :pages
  has_many :photos, :through => :pages
end

因此页面中的user_id是外键,照片中的pages_id是外键(这意味着我可以通过@ user.page.photos获取用户照片 - 或使用'包含'以使其更多效率 - 但它仍然比下面好吗?)

class User
  has_many :pages
  has_many :photos
end

因此页面中的user_id是外键,照片中的pages_id和user_id是外键。 (这意味着我可以直接调用@ user.photos)

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我认为第二个例子最有效。这是因为您不必通过中间表来连接以查找用户的照片。

然后photos表将存储page_iduser_id外键。