我想知道这对于一对多关系是否是最佳做法。我正在计划一个简单的rails应用程序,该应用程序将具有以下任一方案的关系数据库:
Scenario A ERD:用户可以拥有零个或多个列表,列表可以包含零个到多个项目。我知道这意味着用户无法直接创建项目。只能通过列表创建项目。项目实际上属于列表,列表属于用户。
Scenario B ERD:用户可以拥有零个或多个列表,用户也可以拥有零个或多个项目。这意味着一切都直接与用户相关联。由于外键通过列表ID,项目将与列表相关联。
是否有使用/不使用任何一种方案的最佳做法?
提前致谢!
答案 0 :(得分:0)
情景A是一种更好的方法。
class User < ActiveRecord::Base
has_many :lists
has_many :items, :through => :lists
end
class List < ActiveRecord::Base
has_many :items
end