多对多关系的MongoDB模式设计
我面临着NoSQL模式中多对多关系的问题。我找到了几本指南,有两种方法可以处理它-多对多关系的MongoDB模式设计,mongodb,nosql,many-to-many,schema,Mongodb,Nosql,Many To Many,Schema,我面临着NoSQL模式中多对多关系的问题。我找到了几本指南,有两种方法可以处理它- 将关系存储在两个集合中() 将关系存储在第三个表()中 我认为第二种方法会更好,因为第一种方法中存在重复数据,但我发现第二种方法很困难-如果查询很复杂,则很难提取我需要的内容(例如,根据关键字搜索课程并确定学生注册了哪些课程)。在这种情况下,我发现在第一种方法中查询要容易得多 在NoSQL结构中,哪种方法处理多对多关系更好?在我看来,这两种结构都可以,很难说哪种更好。 下面有一篇好文章: 请参阅第六条规则:“……
在NoSQL结构中,哪种方法处理多对多关系更好?在我看来,这两种结构都可以,很难说哪种更好。 下面有一篇好文章: 请参阅第六条规则:“……与MongoDB一样,数据建模方式完全取决于特定应用程序的数据访问模式。您希望数据结构与应用程序查询和更新数据的方式相匹配……”
Student: [
{ _id: 1, name: Hei, courseId: [ 1001, 1002, ... ] }
{ _id: 2, name: Vivian, courseId: [ 1001, 1003, ... ] },
... ]
Course: [
{ _id: 1001, name: Database Design, studentId: [ 1, 2, ... ] },
{ _id: 1002, name: Big Data Analysis, studentId: [ 1, ... ] },
... ]
Student: [
{ _id: 1, name: Hei },
{ _id: 2, name: Vivian },
...]
Course: [
{ _id: 1001, name: Database Design },
{ _id: 1002, name: Big Data Analysis },
...]
Registration: [
{ studentId: 1, courseId: 1001 },
{ studentId: 1, courseId: 1002 },
{ studentId: 2, courseId: 1001 },
{ studentId: 2, courseId: 1003 },
...]