我正在實施具有不同類型問題和答案的調查問卷應用程序。我的目標是以有效的方式創建數據庫表,以便它們具有可擴展性。設計數據庫表
設計數據庫表
回答
爲答案創建一個表,併爲答案創建一個表,然後在答案表中創建一個帶問題ID的外鍵。
喜歡的東西:
問表
+---------+-------------+------+---------+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+---------+---------+-------+
| q_id | int | NO | PRIMARY | NULL | |
| question| varchar(20) | NO | | NULL | |
+---------+-------------+------+---------+---------+-------+
回答表
+---------+-------------+------+---------+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+---------+---------+-------+
| a_id | int | NO | PRIMARY | NULL | |
| q_id | int | NO | FOREIGN | NULL | |
| answer | varchar(20) | NO | | NULL | |
+---------+-------------+------+---------+---------+-------+
你能解釋一下嗎更多? –
喬還建議創建一個獨立的表來將多個問題連接到一個答案以及另一個答案辦法。 – Whistletoe
這是一個問題,很多答案。經典的一對多外鍵。 – duffymo
在過去,我開發了一個類似的系統,並做了questions (id, question_text)
表和answers (id, answer_text)
表,再加上question2answer (question_id | answer_id | correct)
表((question_id,answer_id)上的唯一索引),以避免將同一問題的相同問題插入兩次。 '正確'是真實的|虛假的標誌來表示爲了評分目的,該答案對於該問題是正確的。
這樣,如果您想稍後爲問題添加答案,只需在答案表中插入答案,並將其映射到question2answer中的問題。
這也可以讓您重複使用1個以上問題的答案。 (即,您不必在數據庫中輸入「是」和「否」一百萬次,您只需將現有的答案ID映射爲允許肯定回答的新問題即可。
- 1. 數據庫表格設計
- 2. 設計數據庫:表
- 3. 數據庫表格設計
- 4. 數據庫表設計
- 5. 多表數據庫設計
- 6. 數據庫表設計
- 7. Mysql數據庫表設計
- 8. 數據庫表設計
- 9. 數據庫設計 - 配置/設置表
- 10. 數據庫表設計/設置
- 11. 如何設置數據庫表,數據庫設計
- 12. 數百個表的數據庫設計
- 13. 設計數據庫
- 14. 數據庫設計
- 15. 數據庫設計
- 16. 設計數據庫
- 17. 數據庫設計
- 18. 數據庫設計?
- 19. 數據庫設計
- 20. 數據庫設計
- 21. 數據庫設計
- 22. 數據庫設計
- 23. 數據庫設計
- 24. 數據庫設計
- 25. 設計數據庫
- 26. 數據庫設計
- 27. 庫存數據庫設計
- 28. 數據庫設計中的外鍵 - 數據庫設計
- 29. 數據庫設計動態表
- 30. 以下狀態表數據庫設計
可以你可以更改你的DBMS,如果可以的話,我建議你看看Postgresql上的Array Data Type。 http://www.postgresql.org/docs/9.1/static/arrays.html 我沒有知道你所有的要求,但可能是非常聰明的想法使用該功能 有了這個功能: 你只有1個表和2列 你不浪費磁盤空間 想一想。 –