当一个实体没有同时与许多个其他实体关联时,我是否仍然应该使用多对多关联?
例如,我理解作者与书籍的关系是多对多,一个作者可以写很多本书,一本书可以由很多作者写。这一直有效。
考虑这种情况。一个批处理在某个特定时间有许多学生。如果学生不及格,他应该转入下一个三年级。换句话说,一个学生不能同时属于多个批处理。在这种情况下,这是多对多关联吗?
我认为的替代解决方案:
我正在考虑在学生表中放入两列。 initial_batch
和 current_batch
。由于规则学生必须进入下一个立即批处理,我可以通过检查当前批处理和初始批处理之间的差距来获取学生的批处理历史记录。此外,batch.students
与 Rails 中的 has_many
关联一起存在。所以,我认为这没什么大不了的。
所谓批处理,是指同一年有一批学生被录取。
最佳答案
我认为您仍然想使用关联表(多对多关联),因为您可能想保留学生所修类(class)的历史记录。
如果您希望它是多对一的并且让一名学生一次属于一个类(class),则必须向学生表添加一个 class_id
字段。这允许您调用 student.class
来查找他们当前的类(class),但您无法执行 class.students
因为该关系不存在。因此,我认为应该是多对多。
关于ruby-on-rails - 多对多关联在这里还适用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33194723/