【问题标题】:How to track progress of a student in a Learning Management System如何在学习管理系统中跟踪学生的进度
【发布时间】:2018-05-20 14:14:26
【问题描述】:

我正在为客户开发 LMS。顶层表是证书。下一层是课程,再往下是活动。 Activity 可以是视频、幻灯片或测验。

存储这些关系很容易而且不是问题。

如果学生/用户注册了证书,我需要通过证书跟踪该学生的进度。所以我需要一个唯一版本的证书和所有的孩子,这样我就可以知道每个活动、课程和证书的进度。另一个考虑因素是学生可以多次完成证书。

我用user_id, certificate_id, course_id, activity_id 尝试了一个进度表并完成了,但它不能处理多次注册证书。在同一张表中,我尝试引用certificates_users_id 以尝试为该用户和证书建立唯一的顶级引用,但我无法将其连接在一起。

我希望能够获取该用户的 In Progress 证书,并确切知道该用户已完成其中的哪些活动和课程。

【问题讨论】:

  • 好吧,我猜你会有一个注册表,其中可能包含 certificate_id、user_id 和注册日期——假设同一个用户不能两次注册相同的课程,同时。

标签: mysql cakephp database-design cakephp-3.0


【解决方案1】:

如果您只是在进度表中添加一个新字段,例如attempt_number,则键:user_id, certificate_id, attempt_number 一起可以构成主键,这样您就可以处理用户多次完成证书的情况。您可以从尝试编号为 1 开始,并在下次用户进行相同认证时将其递增。

它还跟踪每次认证完成的历史记录,比如用户完成认证后在课程中添加了一个新活动,可以轻松跟踪。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 2013-03-06
    相关资源
    最近更新 更多