Rails模型:可以属于一个但有很多吗?

时间:2013-11-30 06:28:39

标签: ruby-on-rails database-design relational-database rails-models

假设我在数据库中有两个表:用户和文章。用户创建文章,但文章也可以保存到不同的用户列表中(这些只是示例,不要问我为什么要这样做)。这种关系如何在数据库中表示,因为一个集合与用户建立了一对一的关系,但同时如果他们将它们添加到他们的项目中也可能有很多用户?类似下面的东西是可能的(我在Rails中写这个)?

class User

  #something

end

class Article

  belongs_to :user
  has_many :users

end

或者您是否需要添加额外的列表?

class User

  has_many :lists
  has_many :articles, through: :lists

end

class Article

  has_many :lists
  has_many :users, through: :lists

end

class List

  belongs_to :user
  belongs_to :article

end

1 个答案:

答案 0 :(得分:1)

第二种方法确实是你如何做到的。此外,您可以从belongs_to :userArticle之间建立单独的User关系来表示作者身份,就像您在第一种方法中所做的那样。