在这种情况下,我应该如何指定Rails模型关系?

时间:2015-07-08 00:34:08

标签: ruby-on-rails design-patterns database-design

假设我在Rails中有3个模型:帖子,评论和用户。它们中的每一个都应与Image模型具有一对一的关系。

我应该选择:

class Post
  has_one :image
end

class Comment
  has_one :image
end

class User
  has_one :image
end

class Image
  # Foreign key references
  belongs_to :post
  belongs_to :comment
  belongs_to :user
end

class Post
  belongs_to :image # Foreign key reference
end

class Comment
  belongs_to :image # Foreign key reference
end

class User
  belongs_to :image # Foreign key reference
end

class Image
end

每个的优点和缺点是什么? 还有其他众所周知的做法来处理这种情况吗?

1 个答案:

答案 0 :(得分:1)

根据给定的数据,两者之间没有真正的区别。

...然而 以后......如果你突然决定你需要两张图片作为帖子,你需要在图片上加上post_id,而不是帖子上的image_id(否则你只会被卡住)能够有一个图像的帖子)。

这意味着你最好在图像端使用belongs_to,而不是在其他方面。