ERD针对一对多关系的最佳实践

时间:2017-05-26 02:20:41

标签: ruby-on-rails one-to-many erd

我想知道这对于一对多关系是否是最佳做法。我正在计划一个简单的rails应用程序,该应用程序将具有以下任一方案的关系数据库:

  • Scenario A ERD:用户可以拥有零个或多个列表,列表可以包含零个到多个项目。我知道这意味着用户无法直接创建项目。只能通过列表创建项目。项目实际上属于列表,列表属于用户。

  • Scenario B ERD:用户可以拥有零个或多个列表,用户也可以拥有零个或多个项目。这意味着一切都直接与用户相关联。由于外键通过列表ID,项目将与列表相关联。

是否有使用/不使用任何一种方案的最佳做法?

提前致谢!

1 个答案:

答案 0 :(得分:0)

情景A是一种更好的方法。

class User < ActiveRecord::Base
  has_many :lists
  has_many :items, :through => :lists
end

class List < ActiveRecord::Base
  has_many :items
end