2011-10-04 79 views
0

可能是一个愚蠢的问题,但我对这一切都很陌生。如何创建一个MySQL数据库,每个数据库都有相同的字段标题?

我正在PHP中创建一个基本测验程序,我想为每个测验都有一个MySQL数据库,为每个测验表添加一个表,每个表都需要有相同的标题(问题,第1个第2和第3个和第4个多个答案,并且正确回答)。然后每张表格将包含在特定测验中有多少问题。

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

我不知道这是最有效的方式做到这一点,但我没有别的想法,我很开放的建议:)

我的问题是:我如何可以自动创建内多个表该数据库具有相同的标题,因此用户可以轻松创建新的测验。

然后,我将继续将此链接与我的PHP代码链接起来,并为用户创建一个不错的用户界面,以供用户创建和测验。

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

回答

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 

此,你就是了,并且每个问题都有许多(或几个)可能的答案是自由有你想要尽可能多的测验,每个都具有许多问题。

0

的SQL的方式更像是创造,说四个表:

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

对于给定的QUIZZ,PHP脚本负责拉的问题与日在quizz和另一个脚本中,您将发布用户答案将负责计算结果并提供Quizz_result表。

0

其他人建议的多表方法从“软件设计”的角度来看是“更合适”的,但是,它要求你编写更为高级的代码。

我会建议一个更简单的结构让你开始,这是更容易编程。对所有测验一个单一的表和每行中有一列“竞猜名”,就像这样:

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 

当你变得更加熟练,你可以重新设计和建议的多表结构的使用。

相关问题