我有一个MySQL数据库表,例如(附有示例屏幕截图,因为要在此处创建表的列很多)-
如上图所示,一个表qbank
既有问题,也有选项(答案)。以前,这似乎是一种不错的方法,但是现在了解到,这并不是一种好的做法。因此,我为问题和选项(答案)创建了2个不同的表。我的answers
表的结构类似于-
ID
question_id
answer
correct
但是我无法构建单个SQL查询,因为我可以将qbank
表的列转换为answers
表的类似内容-
+---------------+----------------------+
|Table_Answers | Table_Qbank |
+---------------+----------------------+
|ID | 1 |
+---------------+----------------------+
|question_id | q_id (1) |
+---------------+----------------------+
|answer_id | option_01_text |
+---------------+----------------------+
|correct | option_01_is_correct |
+---------------+----------------------+
|ID | 2 |
+---------------+----------------------+
|question_id | q_id (1) |
+---------------+----------------------+
|answer_id | option_02_text |
+---------------+----------------------+
|correct | option_02_is_correct |
+---------------+----------------------+
,即,如果第一个问题正确或不正确,则首先插入所有4个选项和值,然后类似地为其他问题行插入查询。
我可以使用PHP进行此工作,但是对于30000个问题行,我试图找到一种方法,可以自定义任何SQL查询以从PHPMyAdmin本身进行这项工作。
答案 0 :(得分:0)
步骤1。修改架构设计。
这是规范化架构的示例:
questions
question_id, question
1, What is the name of the current Prime Minister of India?
2, What it the capital of India?
answers
answer_id, question_id, answer, is_correct
101 1 Ram 0
102 1 Shyam 1
103 1 Kishan 0
104 1 Mohan 0
105 2 Jaipur 0
106 2 Chennai 0
107 2 Delhi 1
108 2 Kolkata 0
或者,您可以简单地说第一个答案始终是正确的答案,而无需使用is_correct列,或者将正确答案的引用存储在单独的表中。