首页 > 解决方案 > 为成绩簿建模

问题描述

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

标签: mongodbnext.jsdata-modelingmernlms

解决方案


数据结构:

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


推荐阅读