我不确定这个主题是否具有我想要的正确含义,但我不知道如何解释。我正在建立在线考试应用程序。为了便于解释问题,我将重点放在6个表中:
has_many
主题belongs_to
课程belongs_to
主题, has_many
general_exams,至::general_questions has_many
问题, through:
general_questions, belongs_to
用户, belongs_to
当然, has_many
考试 GeneralQuestions: belongs_to
问题, belongs_to
general_exam
考试: belongs_to
一般考试, belongs_to
用户
这是表GeneralExam中的列:
name,description,semester,number_question,duration,used, user_id, course_id
我现在想做的是创建一般考试,当然可以针对每个主题提出一些问题。例如,我有课程名为“数据库”有3个主题:A,B,C。现在我想为“数据库”课程创建一般考试。我想在创建普通考试时具体说明:
这些问题我从这些主题中随机出现。我已经构建了一个用于创建常规考试的表单,但我不知道如何在表单上获得课程主题,并为每个主题创建输入数字问题的字段。那么是否有一些方法可以列出关于新形式的一般考试的主题,并且每个主题都有一个字段来输入数字问题将随机获得该主题?或者我需要创建一个新表来存储该信息?
答案 0 :(得分:1)
这就是我要做的......
数据库应该是它的“灵活性”。 为此,所有信息存储在不同的表中.. 然后为了反复数据的速度..建立一些关系表来显示信息.. (取决于将有多少人使用您的系统)
所以....自上而下....
教师表(一位老师可以教许多课程)..每件事都从这里开始) - > 课程表(这是所有其他人的基础) -----------------下面可能开始交叉审判.. - > 主题表 ---> g-exam表大问题表可能在同一级别 - > g-question表应该在底层(可以参考g-exam和Big-Q)(不需要保存教师信息或主题信息,因为它是两级的... 但您仍然可以存储这些信息以便快速检索数据。 但要记住 .. 如果您需要在信息存储后更改信息... 简单就是更好......
答案 1 :(得分:0)
我只是回答我的回答...... 我发现一个错误,我说.. 我应该说:你不需要在g-question表中保存教师或主题信息。 g-question表仅保存问题密钥和g-exam-key 和问题表和g-exam表保存主题密钥 .....和referance回到顶级..
并创建一个快速访问表,以便快速访问,可以每天更新 (例如:显示教师姓名,名字等等,因为这些表格由“关键”而非名称
链接 抱歉没说错“