为 LMS 设计测验模块

Designing the Quiz module for an LMS

不确定这个问题是属于这个网站还是其他网站(如果不是,请指出正确的问题)。

我正在尝试为 LMS 类型的系统设计测验模块。这个问题跟数据库设计有关。

我目前的设计:

数据库

1) 问题:选择题 [id, question_text]

2) 答案:上述问题的可能选项[question_id, answer_text, correct?]

3) 测验:测验由问题组成。它们还与各种主题相关。某些测验就像阅读理解(一个段落,然后是一组问题),其他测验只是简单的问题 [id, questions, description, topic]

4) 主题:测验所属的主题。目前每个测验只属于一个主题。 [id, topic_name]

5) 测验回复:它们存储 quiz_id、问题回复、收到的分数和花费的时间。 [id, quiz_id, user_id, correct, time_taken]

应用逻辑

1) 测验、问题和答案是存储信息的通用结构

2) 要显示测验,我们获取问题集,查看其相关标签和 运行 基于标签的显示逻辑(所有与阅读理解等相关的测验显示测验描述,其中有段落,然后是问题;其他测验只显示问题和答案)

问题

1) 这是设计应用程序的正确方法吗?或者有没有我能想到的更好的方法(将测验分成各种类型的子 tables 等)

2) 我想为站点添加书签。用户将问题加入书签,然后可以在单个屏幕上看到这些问题。这里的问题是与 RC 测验相关的问题也应该获取测验段落以供显示。在这种情况下最好的方法是什么?

我能想到的选项

将段落详细信息放入单独的 table 并将其 id 存储在测验和相关问题中。这里的问题被浪费了space(因为只有一小部分问题是RC)。

专门为 RC 重新创建上述 table 组(测验、问题)。很多重复:/

有没有人有这方面的经验,或者知道像 moodle 这样的组织是如何处理这些情况的?

我想你想要这样的东西:

请注意,QUESTION 被组织成 QUESTION_GROUP。对于阅读理解问题,问题组可以记录问题所适用阅读的详细信息。有些小测验可能只有一个问题组,有些小测验可能有很多。