ruby-on-rails - 多对多关联在这里还适用吗?

标签 ruby-on-rails entity-framework database-design many-to-many

当一个实体没有同时许多个其他实体关联时,我是否仍然应该使用多对多关联?

例如,我理解作者与书籍的关系是多对多,一个作者可以写很多本书,一本书可以由很多作者写。这一直有效。

考虑这种情况。一个批处理在某个特定时间有许多学生。如果学生不及格,他应该转入下一个三年级。换句话说,一个学生不能同时属于多个批处理。在这种情况下,这是多对多关联吗?

我认为的替代解决方案: 我正在考虑在学生表中放入两列。 initial_batchcurrent_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/

相关文章:

ruby-on-rails - ruby sass-rails gem 和 heroku 推送错误

ruby-on-rails - Rails : Image cropping with Paperclip, S3 和 RMagick

sql-server - 首先使用实体​​框架代码播种数据时如何控制主键值

c# - Entity Framework 6 和 SQLite - 无法使用之前删除的条目的 PK 创建条目

asp.net-mvc - 使用自动映射器映射嵌套对象

java - 存储大量单元和大量属性的方法

ruby-on-rails - 使用 simple_form Bootstrap 输入组包装器

javascript - 如何在 Ruby on Rails 应用程序中使用 Javascript 获取 CSS 文件的内容?

mysql - 将图像作为文件存储在文件系统中或作为二进制文件存储在 BLOB 数据库字段中

sql-server - 在星型模式中,事实和维度之间的外键约束是否必要?