2011-10-04 82 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 

當你變得更加熟練,你可以重新設計和建議的多表結構的使用。

相關問題