mongoid文档告诉我n-n关系should be used with caution
我理解他的但不知道如何使用纯mongoid更好地解决我的问题:
课程有很多参与者,参与者可以参加许多课程。那么,当需要参与者的所有课程时,将参与者存储在课程模型中并对所有课程进行搜索是不是更快?
答案 0 :(得分:1)
您的模型应该反映您的用例。
这样做的一种方法是为课程设置一个模型,一个用于参与者,第三个用于将学生映射到课程(在课程和学生上使用唯一索引以防止重复)。这种方式有一个模型引用另一个2.根据您的访问模式,这可能是理想的,也可能不是理想的。
答案 1 :(得分:0)
我认为这可能是嵌入文档的一个很好的用例。请参阅首页上的示例语法:embeds_many和embedded_in:http://mongoid.org/en/mongoid/
这里的主要缺点是,如果您有多个课程的参与者,那么每个课程都会有重复的参与者。
确保在计划为参与者查找的字段上添加索引。