LMS 中单个学生的 Next.js/Mongodb 分配状态
Posted
技术标签:
【中文标题】LMS 中单个学生的 Next.js/Mongodb 分配状态【英文标题】:Next.js/Mongodb Assignment Status for Individual Student in a LMS 【发布时间】:2022-01-21 07:24:45 【问题描述】:我正在构建一个 MERN(使用 Next.js)堆栈学习管理系统。目前,我已经为列出该课程作业的作业构建了前端。例如,如果我已登录,如果我转到 test.com/courses/PHIL204/Assignments
,我将看到我的 PHIL 204 课程的所有作业。现在,在此表中,有一列显示“状态”,它表明作业是否已开始、已提交或已评分(只有 3 个值)。我的问题是,我如何存储/计算这个值?我的数据库中有学生和作业作为两个集合(在许多集合中)。我的数据库仍在开发中,因此我可以轻松遵循您的建议。我不认为 Assignments col 应该有一个“status”字段,因为这对于所有有该作业的学生来说都是一样的。如果您需要我的任何代码,我可以提供。如果学生已开始、提交或(由教授)评分(由教授)该作业,我主要寻求关于存储内容/如何存储的逻辑的帮助。
任何帮助将不胜感激。非常感谢。
【问题讨论】:
【参考方案1】:实际上,GitHub Copilot 建议我在学生模式中我有这样的东西:
const studentSchema = mongoose.Schema(
studentFirstName : type : String, required: true,
studentLastName : type : String, required: true,
studentEmail : type : String, required: true,
studentClass : type : String,
studentAssignments : [
assignmentId : type : Schema.ObjectId, ref: 'Assignments',
assignmentGrade : type : String, enum : ["A","A-","B+","B","B-","C+","C","C-","D+","D","D-","F"],
assignmentStatus : type : String, enum : ["Not Started", "Started", "Submitted", "Returned"],
assignmentRemarks : type : String,
assignmentCompeletedDate : type : Date,
],
studentTestQuizzes : [
testQuizId : type : Schema.ObjectId, ref: 'TestQuizzes',
testQuizGrade : type : String, enum : ["A","A-","B+","B","B-","C+","C","C-","D+","D","D-","F"],
testQuizStatus : type : String, enum : ["Not Started", "Submitted", "Returned"],
testQuizRemarks : type : String,
testQuizCompletedDate : type : Date,
],
studentAnnouncements : [
announcementId : type : Schema.ObjectId, ref: 'Announcements',
announcementStatus : type : String, enum : ["Read", "Not Read"],
],
// we need a courseId to link the student to a course
, collection: 'Students' );
这应该可行。如果它不起作用或者我需要做更多的工作,我会更新这个线程。
【讨论】:
以上是关于LMS 中单个学生的 Next.js/Mongodb 分配状态的主要内容,如果未能解决你的问题,请参考以下文章
星型模式设计:当源系统多对一(N:1)时,使用 2 维还是 1 一致维?
优化算法改进定步长与变步长LMS算法含Matlab源码 629期