我有问卷表和问题表。
我需要在问卷中记录问题的顺序,可能还需要另一张表。
示例:
问卷可能会显示问题42,然后是56,然后是14
另一份调查问卷可能会记录问题34,67,56,27
多份问卷使用的问题相同。
问卷:
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| id | int(255) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | NULL | |
+----------+--------------+------+-----+---------+----------------+
问题:
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| id | int(255) | NO | PRI | NULL | auto_increment |
| question | varchar(255) | NO | | NULL | |
+----------+--------------+------+-----+---------+----------------+
答案 0 :(得分:1)
你可能想要问题和调查问卷之间的M:M关系表,可能是问题和问卷调查表的fk,以及数字问题的列。这样,您可以找到每个问卷ID的问题,并按问题编号排序,并加入问题表。
答案 1 :(得分:1)
我建议您创建第三个表格,将问题与调查问卷联系起来。像这样:
<强> questionnaire_link 强>:
questionnaire_id question_id sortOrder
1 42 1
1 56 2
1 14 3
2 34 1
2 67 2
2 56 3
2 27 4
(确保在此表中添加索引)
然后你可以像这样进行查询以获得所有问题:
SELECT question.name FROM question
JOIN questionnaire_link ON question.id = questionnaire_link.question_id
WHERE questionnaire_link.questionnaire_id = 1