成绩簿建模

Modelling a Gradebook

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

数据结构:

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