我正在构建一个在线考试应用程序,该应用程序的目的是,它可以让老师创建课程,课程主题和问题(每个问题都有标记),并且老师可以为学生创建考试,学生可以在线进行考试。由于我会使用很多单词examination
and examinations
,所以我将其简称为exam
and exams
。
关于我的应用的业务:
- 老师可以创建话题,问题和每个话题,问题只属于一位老师。
- 老师可以
general exam
为一门课程创建一个,它会从question bank
. - 由此
general exam
,教师将生成number of exams
与number of students
需要做课程考试的对应。考试将在生成后自动随机分配给学生。 生成的考试会有不同
number of questions
,但total mark of questions
每次考试的考试都是一样的。例如,在生成考试后:Student A take exam with 20 questions, student B take exam only has 10 questions, it means maybe every question in exam of student A only has mark is 1, but questions in exam of student B has mark is 2.
所以 20 = 10 x 2,这就是我的意思
total mark of questions in every examination will be the same.
我设计了以下表格:
- 用户(包括学生和教师帐户)
- 课程
- 话题
- 问题
- 回答
当学生做考试时,我认为它会有表格:
- 结果,包含列:user_id、exam_id、mark
这是我想我会创建的表general examination
:
- GeneralExamination,列:name、description、dateStart、dateFinish、numberOfMinutes、maxMarkOfExam
但现在我不知道如何在用户(学生)、问题、考试、普通考试之间建立关联。总结一下关联:
- 学生可以参加很多考试。
- 学生只能参加分配给他们的考试。
- A
general exam
有很多问题,从题库中获得,但每次考试都会从general exam
生成的问题中获取问题。 - Exams 属于 one
general examination
,用于生成它们。
我怎样才能建立这些协会?