nosql 中的层次结构关系


course
  lesson
    activity
大约

三个活动创建一节课,大约 16 节课组成课程

我想将活动和课程文档分开。(通过选择它们来制作课程和课程

每个文档都有一个 CRUD 操作,输出课程信息时会出现课程活动

哪个更适合参考和包含在 nosql 中?

我不确定我是否误解了您的问题,但是为每种类型的记录(活动,课程和课程)创建单独的集合,然后根据需要简单地引用所需课程和活动的id没有问题。 这将为您提供层次结构的外观。

例如,您可能有如下所示的课程

{
  "_id": {
    "$oid": "5bbf5d8e1ed05050136206ev"
  },
  "course_name": "Course 1",
  "lessons": [
    "_id": {
      "$oid": "5bbf5d8e1ed05050136206ew"
    },
    "_id": {
      "$oid": "5bbf5d8e1ed05050136206ex"
    },
    "_id": {
      "$oid": "5bbf5d8e1ed05050136206ey"
    },
  ]
}

这是一堂课

{
  "_id": {
    "$oid": "5bbf5d8e1ed05050136206ev"
  },
  "lesson_name": "Lesson 1",
  "activity": [
    "_id": {
      "$oid": "5bbf5d8e1ed05050136206ez"
    },
    "_id": {
      "$oid": "5bbf5d8e1ed05050136206ea"
    },
    "_id": {
      "$oid": "5bbf5d8e1ed05050136206eb"
    },
  ]
}

如果您知道要显示的详细信息类型并希望最大程度地减少查询,那么将某些详细信息包含在多个集合中没有问题,以下示例为课程

{
  "_id": {
    "$oid": "5bbf5d8e1ed05050136206ev"
  },
  "course_name": "Course 1",
  "lessons": [
    {
      "_id": {
        "$oid": "5bbf5d8e1ed05050136206ew"
      },
      "lesson_name": "Lesson 1"
    },
    {
      "_id": {
        "$oid": "5bbf5d8e1ed05050136206ex"
      },
      "lesson_name": "Lesson 2"
    },
    {
      "_id": {
        "$oid": "5bbf5d8e1ed05050136206ey"
      },
      "lesson_name": "Lesson 3"
    },
  ]
}

希望这有帮助。

最新更新