为LMS

时间:2017-04-29 11:22:00

标签: database-design architecture moodle application-design

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

我正在尝试为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]

App逻辑

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

2)要显示测验,我们得到问题集,查看其相关标签并根据标签运行显示逻辑(所有与阅读理解相关的测验等显示测验说明,其中包含段落,然后是问题;其他测验只显示问题和答案)

问题

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

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

我能想到的选项

将段落详细信息放入单独的表格中,并将其ID存储在测验和相关问题中。这里的问题是浪费空间(因为只有一小部分问题是RC)。

特别为RC重新创建上述表格集(测验,问题)。很多重复:/

任何有过这个主题经验的人,或者想知道像moodle这样的组织如何应对这些情况?

1 个答案:

答案 0 :(得分:1)

我想你想要这样的东西:

ERD

请注意,QUESTION被组织为QUESTION_GROUP个。对于阅读理解问题,问题组可以记录所应用问题的阅读细节。对于一些测验,可能只有一个问题组,其他测验可能有很多。