2012-11-13 53 views
0

更好的解决方案mongoid文档告诉我,NN关系should be used with caution 我理解他,但没有一个想法如何使用纯mongoid解决我的问题有更好的方式:为mongoid多对多的关系

的课程有许多参与者和参与者可以参加很多课程。因此,将参与者存储在课程模型中并在需要参与者的所有课程时搜索所有课程不会更快吗?

回答

0

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

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

确保您在计划对参与者进行查找的字段中放置索引。

1

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

要做到这一点的一种方法是有一个模型的课程,一个参与者和第三个映射到课程的学生(与课程&学生的唯一索引,以防止重复)。这样就有一个模型指向另一个模型2.根据您的访问模式,这可能也可能不是理想的。