【问题标题】:Hierarchy relationship in nosqlnosql中的层次关系
【发布时间】:2019-01-07 21:49:06
【问题描述】:
course
  lesson
    activity

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

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

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

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

【问题讨论】:

    标签: mongodb nosql data-modeling


    【解决方案1】:

    我不确定我是否误解了您的问题,但是为每种类型的记录(活动、课程和课程)创建单独的集合,然后根据需要简单地引用所需课程和活动的 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"
        },
      ]
    }
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      相关资源
      最近更新 更多