我正在实施一份问卷调查申请,其中包含不同类型的问题和答案。我的目标是以有效的方式创建数据库表,以便它们可以扩展。
答案 0 :(得分:1)
为问题创建一个表,为答案创建一个表,然后在答案表中创建一个带有问题ID的外键。
类似的东西:
问题表
+---------+-------------+------+---------+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+---------+---------+-------+
| q_id | int | NO | PRIMARY | NULL | |
| question| varchar(20) | NO | | NULL | |
+---------+-------------+------+---------+---------+-------+
答案表
+---------+-------------+------+---------+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+---------+---------+-------+
| a_id | int | NO | PRIMARY | NULL | |
| q_id | int | NO | FOREIGN | NULL | |
| answer | varchar(20) | NO | | NULL | |
+---------+-------------+------+---------+---------+-------+
答案 1 :(得分:0)
在过去,我开发了一个类似的系统并执行了questions (id, question_text)
表和answers (id, answer_text)
表,以及一个question2answer (question_id | answer_id | correct )
表,其中包含唯一索引(question_id,answer_id)以避免插入对同一个问题的答案相同两次。 '正确'是真的假标志表示答案对于该问题的答案是正确的。
这样,如果您想稍后在问题中添加答案,只需在答案表中插入答案并将其映射到question2answer中的问题。
这也允许您重复使用1个以上问题的答案。 (即,您不必在数据库中添加“是”和“没有”一百万次,您只需将现有的答案ID映射为'是& #39;对允许回答的新问题。