假设我在数据库中有两个表:用户和文章。用户创建文章,但文章也可以保存到不同的用户列表中(这些只是示例,不要问我为什么要这样做)。这种关系如何在数据库中表示,因为一个集合与用户建立了一对一的关系,但同时如果他们将它们添加到他们的项目中也可能有很多用户?类似下面的东西是可能的(我在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
答案 0 :(得分:1)
第二种方法确实是你如何做到的。此外,您可以从belongs_to :user
到Article
之间建立单独的User
关系来表示作者身份,就像您在第一种方法中所做的那样。