【发布时间】:2012-07-13 03:19:46
【问题描述】:
我有一个以前从未处理过的有趣问题。我正在寻找处理它的最佳方法。
我正在创建一个将学生链接到虚拟机的管理站点。一个学生可以注册多门课程并拥有一个 virtual_machine_id,这取决于他们所修课程的组合。管理员可以创建新课程并(单独)将课程组合映射到特定的 virtual_machine_id。
1) 将可变元素组合与特定 id 相关联的最佳方法是什么?如果元素是固定的,我将创建一个表,其中每个元素的列和 virtual_machine_id 的列。但由于这些元素可能会发生变化(当管理员添加或删除课程时),我如何以一种可以轻松查询组合及其关联 ID 的方式映射它们?
2) 现在,我使用 has_many :through 关联和带有 student_id 和 course_id 的第三个表将学生映射到课程。如果我需要收集课程组合并为整个组合分配一个 virtual_machine_id,这是正确的方法吗(我无法将 id 分配给学生,因为他们可能拥有多个 virtual_machine,具体取决于他们参加的课程数量)
我将 EAV(实体-属性-值)模型视为一种解决方案,但普遍的共识似乎是这是一个坏主意,因为您会丢失一些 ActiveRecord 功能。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 activerecord has-many-through