如何使用具有相同字段标题的许多表创建MySQL数据库?

时间:2011-10-04 18:23:44

标签: php mysql phpmyadmin field

可能是个愚蠢的问题,但我对这一切都不熟悉。

我正在用PHP创建一个基本的测验程序,我希望有一个MySQL数据库为每个测验提供一个表格,每个表格需要有相同的标题(问题,第1个第2和第3个选择答案,以及正确答案) )。然后,每个表格将包含该特定测验中的许多问题。

我正在使用在WAMP服务器上运行的PHPMyAdmin。

我不确定这是否是最有效的方式,但我没有其他想法,我对建议非常开放:)

我的问题是:如何使用相同的标题在该数据库中自动创建更多表格,以便用户可以轻松创建新的测验。

然后我将继续将其与我的PHP代码相关联,并为用户创建一个很好的用户界面来创建和进行测验。

我会非常感谢任何答案,并欢迎提出建议。对不起,我提出这个问题的时间很长再次感谢提前:) xx

3 个答案:

答案 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方式更像是创建,比如四个表:

  • 测验(ID,姓名)
  • 问题(ID,quizz_id,标题,ANSWER1,ANSWER2,...,溶液)
  • 用户(ID,名称,...)
  • Quizz_results(ID,USER_ID,quizz_id,结果)

对于给定的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

随着您越来越熟练,您可以重新审视您的设计并使用建议的多表结构。

相关问题