2015-11-16 41 views
1

我是新來的數據庫,我使用Mysql創建一個簡單的測驗生成器,我的問題是我需要在mysql數據庫中存儲輸入的問題和它的選擇..所以我需要的是一列問題和列的選擇(數組也許)..我可以做到這一點,我讀了關於關係數據庫,但我沒有得到如何我可以做我的情況。在Mysql數據庫中的陣列

+0

不要在一列中做數組。做一些類似[Junction Tables](http://stackoverflow.com/questions/32619895/how-to-store-multiple-options-in-a-single-table/32620163#32620163)的更復雜的東西,比如many-對於更簡單的人來說,你可以使用更少的表格 – Drew

回答

0

你想要兩個表 - 一個用於你的測驗數據(問題)和一個用於選擇。您的選擇將通過外鍵加入您的測驗表。這樣你就可以擁有儘可能多的選擇(行)。

例如:

CREATE TABLE quiz (
    quiz_id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    question VARCHAR(250) NOT NULL 
); 

+---------+-----------------------------+ 
| quiz_id |   question   | 
+---------+-----------------------------+ 
|  1 | What time is it?   | 
|  2 | Where should we eat dinner? | 
+---------+-----------------------------+ 

CREATE TABLE quiz_choices (
    choice_id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    quiz_id INT(6) REFERENCES quiz (quiz_id) 
    choice_name VARCHAR(30) NOT NULL 
); 

+-----------+---------+-------------+ 
| choice_id | quiz_id | choice_name | 
+-----------+---------+-------------+ 
|   1 |  1 | 6:00  | 
|   2 |  1 | 7:00  | 
|   3 |  2 | Place A  | 
|   4 |  2 | Place B  | 
+-----------+---------+-------------+ 
+0

也許草擬一個快速架構來展示他。一張圖片勝過千言萬語 – Drew

1

您可以創建問題的可能的答案一個表等。

問題:

id | question 
---+--------------------------------- 
1 | What kind of music do you like? 
2 | Favourite movies? 
3 | Your car? 

答案:

id | question_id | answer 
---+-------------+------------- 
1 | 1   | pop 
2 | 1   | rock 
3 | 1   | disco 
3 | 2   | james bond 
3 | 2   | pulp fiction 
3 | 3   | seat 
3 | 3   | bmw 
3 | 3   | honda 

,然後你可以得到問題的查詢:

SELECT * FROM questions WHERE id = 2 

,並獲得通過查詢這個問題可能的答案:

SELECT * FROM answers WHERE question_id = 2 

您還可以閱讀關於數據庫中的關係。它會加快你的申請並提供一些其他利潤。但是,如果你只想爲小應用程序提出問題和答案,你可以使用我的例子。