【问题标题】:Modelling a Gradebook为成绩簿建模
【发布时间】:2021-11-29 21:11:09
【问题描述】:

我正处于 MERN 应用程序的数据库设计阶段(我使用 Next.js 而不仅仅是 React.js)。我的应用程序基本上是一个 LMS(学习管理系统,教授可以在其中放置作业、测试、资源等。学生可以访问这些、执行并提交它们。我正在考虑如何处理成绩簿。每个学生他们所在的所有班级都会有一个成绩。我正在使用 MongoDB。我如何设计成绩簿?我不能只在课程数据库中输入“成绩”或“分数”字段,因为该班级的所有学生因为那个作业会有不同的成绩。请帮忙。如果你要设计一个 LMS,你会如何设置“成绩”来工作?

【问题讨论】:

    标签: mongodb next.js data-modeling mern lms


    【解决方案1】:

    数据结构:

    db={
      "students": [
        {
          "_id": "1",
          "class_id": "5",
          "name": "Sam"
        },
        {
          "_id": "2",
          "class_id": "5",
          "name": "Tom"
        }
      ],
      "classes": [
        {
          "_id": "5",
          "grade": 6,
          "room": "A-2"
        }
      ],
      "teachers": [
        {
          "_id": "1",
          "name": "John"
        },
        {
          "_id": "2",
          "name": "kyle"
        }
      ],
      "items": [
        {
          "_id": "1",
          "learning_type": "MATH",
          "item_type": "TEST",
          "teacher_id": "1"
        },
        {
          "_id": "2",
          "learning_type": "HISTORY",
          "item_type": "ASSIGNMENT",
          "teacher_id": "1"
        },
        {
          "_id": "3",
          "learning_type": "ENGLISH",
          "item_type": "RESOURCE",
          "teacher_id": "2"
        }
      ],
      "gradebook": [
        {
          "_id": "1",
          "test_id": "2",
          "student_id": "1",
          "item_id": "1",
          "score": 80,
          "isChecked": true
        },
        {
          "_id": "2",
          "test_id": "2",
          "student_id": "2",
          "item_id": "1",
          "score": 0,
          "isChecked": false
        }
      ]
    }
    

    如果你想问如何使用这个数据结构来查询具体的数据,请给出查询参数预期输出,我会添加查询功能。

    mongoplayground

    【讨论】:

    • 谢谢。到目前为止,我的收藏(表格)是课程、教授、学生。课程有 course_id、name、professor_id、assignment_id[]、test_quizzes_id[]、announcement_id[]、resources_id[]、student_id[]。教授集合有professor_id、first_name、last_name、email、course_id[]。 Student 集合有 student_id、first_name、last_name、email、course_id[ ]。这就是为什么我的布局看起来到目前为止。如果您想查看前端,可以在:osm-sagarsubedi.vercel.app 找到它。你认为我还能像你说的那样合并成绩簿数据库吗?
    • 我认为你的数据结构很好。您的成绩簿可能需要多个 ID 才能与其他集合相关联。如果您对查询有疑问,可以在 stackoverflow 中提出另一个问题。放一些测试数据和预期结果。
    猜你喜欢
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多