我是数据库的新手,我使用Mysql创建一个简单的测验生成器,我的问题是我需要在mysql数据库中存储输入的问题及其选择..所以我需要的是一个问题和列的列对于选择(数组可能)..我可以做到这一点,我读到关于关系数据库但我没有得到我如何能够用我的情况做到这一点。
答案 0 :(得分: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
您还可以阅读数据库中的关系。它将加速您的申请并提供一些其他利润。但是,如果您只想为小型应用程序提供问题和答案,您可以使用我的示例。
答案 1 :(得分: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 |
+-----------+---------+-------------+