如何设计/建模a有很多关系,有一个有意义的连接表?

时间:2013-03-13 15:40:44

标签: ruby-on-rails ruby-on-rails-3.2

我无法很好地完成我正在尝试做的事情(问题标题),所以为了纪念一个图像胜过千言万语的说法;简而言之,我要做的是......

enter image description here

基本上,我所拥有的是教师有很多约会学生有很多约会,大​​致可以转换为:

enter image description here

我正在尝试远离使用 has_and_belongs_to_many 宏,因为我的约会模型具有一些含义(操作),例如它有一个布尔字段:< EM>确认

所以,我正在考虑使用 has_many:through 宏,并且可能使用“Appointable”连接表模型?你们觉得怎么样?

我正在尝试编写的场景很简单;

  1. 学生要求在特定日期/时间与教师预约
  2. 如果老师有空(并希望在该日期/时间上课),她确认预约。
  3. 我希望你能告诉我你会怎样解决这个问题?我是否假设使用has_many:通过宏更正

    谢谢!

1 个答案:

答案 0 :(得分:1)

教师和学生都可以从一个班级继承,例如人。然后在Person和Appointments之间创建一个关联。通过这种方式,您可以保持架构的开放性,以便将来添加“父母”时,可以轻松集成并参与约会。

如何与儿童班(学生,家长,教师)建立联系可能并不完全是直截了当的。它可能涉及多态关系,我不是特别喜欢。你应该使用一个连接表。

在任何情况下,您都希望进行设计,以便扩展您的系统。早期的一些额外工作将为您节省大量工作。