【发布时间】:2017-07-16 06:01:29
【问题描述】:
我正在为一个具有两个不同角色的学习网络应用程序建模,Teachers 和 Students。两者之间有很多共同的行为,将它们抽象为AppUser 基类是有意义的。它还有助于对两个模型使用单表继承,一个表 app_users 存储这两种类型。
现在一个Teacher 可以有多个Students,一个Student 可以通过多个不同的Teachers 注册课程。所以这是一个适当的多对多关系。如何为单个表中的记录之间的多对多关系建模。
我认为一种选择是在AppUser 上使用连接表——类似于app_users_app_users,带有teacher_id 和student_id 列。定义它的语法是什么?
另一种方法是使用模型,例如AppUserRelationship,然后定义has_many through 关系。这样做的方法是什么?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 activerecord has-many-through single-table-inheritance