更好的解决方案,用于多种关系的mongoid

时间:2012-11-13 16:31:08

标签: ruby-on-rails mongodb mongoid

mongoid文档告诉我n-n关系should be used with caution 我理解他的但不知道如何使用纯mongoid更好地解决我的问题:

课程有很多参与者,参与者可以参加许多课程。那么,当需要参与者的所有课程时,将参与者存储在课程模型中并对所有课程进行搜索是不是更快?

2 个答案:

答案 0 :(得分:1)

您的模型应该反映您的用例。

这样做的一种方法是为课程设置一个模型,一个用于参与者,第三个用于将学生映射到课程(在课程和学生上使用唯一索引以防止重复)。这种方式有一个模型引用另一个2.根据您的访问模式,这可能是理想的,也可能不是理想的。

答案 1 :(得分:0)

我认为这可能是嵌入文档的一个很好的用例。请参阅首页上的示例语法:embeds_many和embedded_in:http://mongoid.org/en/mongoid/

这里的主要缺点是,如果您有多个课程的参与者,那么每个课程都会有重复的参与者。

确保在计划为参与者查找的字段上添加索引。