可能是个愚蠢的问题,但我对这一切都不熟悉。
我正在用PHP创建一个基本的测验程序,我希望有一个MySQL数据库为每个测验提供一个表格,每个表格需要有相同的标题(问题,第1个第2和第3个选择答案,以及正确答案) )。然后,每个表格将包含该特定测验中的许多问题。
我正在使用在WAMP服务器上运行的PHPMyAdmin。
我不确定这是否是最有效的方式,但我没有其他想法,我对建议非常开放:)
我的问题是:如何使用相同的标题在该数据库中自动创建更多表格,以便用户可以轻松创建新的测验。
然后我将继续将其与我的PHP代码相关联,并为用户创建一个很好的用户界面来创建和进行测验。
我会非常感谢任何答案,并欢迎提出建议。对不起,我提出这个问题的时间很长再次感谢提前:) xx
答案 0 :(得分:4)
更灵活的设计是拥有3个表格;
quizzes: overall info about each quiz
id: int - unique ID of a quiz
name: text - descriptive text
questions:
id - int - unique id of question
quiz_id - int - foreign key pointing at quizzes table
name: text - text of a question
choices:
id - int - unique id of a choice/answer for a question
question_id - int - foreign key pointing at questions table
name: text - text of this particular choice
对此,您可以自由地进行所需的测验,每个测验都有尽可能多的问题,每个问题都有尽可能多的(或很少)可能的答案。
答案 1 :(得分:0)
SQL方式更像是创建,比如四个表:
对于给定的quizz,php脚本负责提取该quizz的问题,另一个脚本将发布用户答案,负责计算结果并提供Quizz_result表。
答案 2 :(得分:0)
从“软件设计”的角度来看,其他人建议的多表方法“更合适”,但是,它要求你编写更加高级的代码。
我建议一个更简单的结构让你开始,这更容易编程。所有测验都有一个单独的表格,每行都有一个“quiz-name”列,如下所示:
Quiz name | Question | 1st | 2nd | 3rd | 4th | correct
--------------------------------------------------------------------
PHP does it work | yes | no | maybe | no idea | 1
PHP looks good | yes | no | maybe | no idea | 2
mysql does it work | yes | no | maybe | no idea | 2
mysql looks good | yes | no | maybe | no idea | 3
随着您越来越熟练,您可以重新审视您的设计并使用建议的多表结构。