0

我有一个有趣的问题,我以前从未处理过。我正在寻找处理它的最佳方法。

我正在创建一个将学生链接到虚拟机的管理站点。一个学生可以注册多门课程并拥有一个 virtual_machine_id,这取决于他们所修课程的组合。管理员可以创建新课程并(单独)将课程组合映射到特定的 virtual_machine_ids。

1) 将变量元素的组合与特定 id 相关联的最佳方法是什么?如果元素是固定的,我将创建一个表,其中每个元素的列和 virtual_machine_id 的列。但是由于这些元素可以更改(当管理员添加或删除课程时),我如何以一种可以轻松查询组合及其关联 ID 的方式映射它们?

2) 现在,我使用 has_many :through 关联和带有 student_id 和 course_id 的第三个表将学生映射到课程。如果我需要收集课程组合并将整个组合分配给单个 virtual_machine_id,这是正确的方法吗(我无法将 id 分配给学生,因为他们可能拥有多个 virtual_machine,具体取决于他们参加的课程数量)

我将 EAV(实体属性值)模型视为一种解决方案,但普遍的共识似乎是这是一个坏主意,因为您失去了一些 ActiveRecord 功能。

4

1 回答 1

0

如果您希望将EAVActiveRecord ORM一起使用,您可以查看hydra_attribute gem,它允许在运行时创建新属性并有可能按它们查找/排序/分组。

目前0.3.2版本不支持属性集,但在下一个版本中,我将添加此功能,您将能够为每个学生记录分配唯一的属性集合。

于 2012-08-01T09:13:12.357 回答