mongodb - 为成绩簿建模
问题描述
我正处于 MERN 应用程序的数据库设计阶段(我使用 Next.js 而不仅仅是 React.js)。我的应用程序基本上是一个 LMS(学习管理系统,教授可以在其中放置作业、测试、资源等。学生可以访问这些、执行并提交它们。我正在考虑如何处理成绩簿。每个学生他们所在的所有班级都会有一个成绩。我正在使用 MongoDB。我如何设计成绩簿?我不能只在课程数据库中输入“成绩”或“分数”字段,因为该班级的所有学生因为那个作业会有不同的成绩。请帮忙。如果你要设计一个 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
}
]
}
如果你想问如何使用这个数据结构来查询特定的数据,请给出查询参数和预期输出,我会添加查询功能。
推荐阅读
- google-compute-engine - 使用来自另一个 Google 项目的服务帐户创建 Google 计算实例
- python - 如何使用python获取特定文件的最后一次提交?
- python - 没有最小最大时间的聚合函数
- ios - 在 xcode 中设置 C 编译标志
- cakephp-3.0 - Cakephp 3:在视图中管理翻译异常的最佳实践是什么?
- javascript - 在对象数组中查找匹配 ID 的最佳方法?
- go - 将 CSV 文件服务器发送到客户端
- variables - 在 Kotlin 中,是否可以使用变量来调用方法或属性?
- c++ - Google Mock:无法设置操作或用户 SaveArg 功能
- sql - 如何使用 TIMEZONE 列获取时间戳(4)的前一小时?