我将创建一个基于多项选择的考试系统。我是数据库设计的新手,希望您帮助回答一些问题。如何建模问题和问题类别?
背景:有多个科目(例如:物理、化学、数学等)。每个主题都有部分,每个部分都有章节。例如:化学有物理化学、有机化学和无机化学等部分。每个部分都有相关的章节。
还有一些问题,每个问题都属于其中一章。通过上述上下文,很明显,每一章都属于一个独特主题的一个独特部分。现在我应该如何继续为此设计数据库?
选项1:
questions:
question_text varchar,
...
chapter_id int foreign_key
chapters:
chapter_name varchar,
section_id int foreign_key
section:
section_name varchar,
subject_id int foreign_key
subject:
id int primary_key,
subject_name varchar,
但我认为当我想按主题和部分查找问题时,这会导致复杂的查询。首先,我需要找到所有部分,然后找到所有章节,然后找到属于给定问题的问题。
选项_2:
questions:
question_text varchar
subject_id int foreign_key,
section_id int foreign_key,
chapter_id int foreign_key,
subjects:
subject_id int primary_key,
subject_name varchar
sections:
section_id int primary_key,
section_name varchar
chapters:
chapter_id int primary_key,
chapter_name varchar
在这种情况下,主题、章节和章节之间将不存在任何关系。
我很想听听一些见解。