因此,我有一個HTML表單,用戶可以通過勾選三個預設答案中的一個來回答單選題,或者編寫自己的自定義答案。雖然這顯然是一個多對多的關係,但我仍然無法找到設計數據庫表的正確方法,以便處理這兩種類型(TEXT和BOOLEAN)。我目前的快速而骯髒的解決方案是在聯結表中對特定的choice_id進行硬編碼以獲得自定義答案。我正在尋找一個更好的模式。預設/自定義選擇問題的數據庫設計
5
A
回答
1
具有以下表:
表1:Question
QuestionID (ID)
QuestionText (Text)
表2:Question Response
QuestionResponseId (ID)
QuestionResponseTypeId (References Question Response Type)
QuestionResponseDetailsId (References Question Response Details) - This should be used for text only values (Custom Answers)
QuestionResponse (Boolean)
表3:Question Response Type
QuestionResponseTypeId (Id)
Description (Text) -- Dictates if the answer is a boolean or a text field
表4:Question Response Details
QuestionResponseDetailsId (Id)
Description (Text) - Holds the text answer to the questions
當下面的表中填充你將有保持的問題,這個問題(文本或布爾值)的響應的結構。
然後,您可以在此過濾器只能看到基於文本的答案,例如:
SELECT * FROM QuestionResponse
INNER JOIN QuestionResponseDetails ON QuestionResponse.QuestionResponseDetailsId = QuestionResponseDetails.QuestionResponseDetailsId
WHERE QuestionResponse.QuestionResponseTypeId = 1
其中1是一個基於文本的答案,2是一個布爾基於答案(從問題的回答類型表)
0
如果我是你,我會做這樣的事情:
Table Answers:
question_id INT(11)
answer_id INT(11)
preset_answer TINYINT(1) //1, 2, 3 for three answers
custom_answer VARCHAR(255)
相關問題
- 1. 數據庫設計選擇
- 2. 數據庫設計問題
- 3. 數據庫設計問題
- 4. 數據庫設計問題
- 5. 數據庫設計問題
- 6. 數據庫設計問題:
- 7. 數據庫設計問題
- 8. 數據庫設計問題
- 9. 數據庫設計問題
- 10. 數據庫設計問題
- 11. 數據庫設計問題
- 12. 數據庫設計問題
- 13. 數據庫設計問題
- 14. 數據庫設計問題
- 15. 數據庫設計問題
- 16. 數據庫設計問題
- 17. 數據庫設計問題
- 18. 數據庫設計問題
- 19. 數據庫設計問題
- 20. 問題設計數據庫
- 21. 數據庫設計問題
- 22. 數據庫設計問題
- 23. 數據庫設計問題
- 24. 數據庫設計問題?
- 25. 數據庫設計問題
- 26. 數據庫設計問題
- 27. 數據庫設計問題(或問題)
- 28. 自定義打印預覽 - 設計選擇
- 29. MySQL數據庫的設計問題
- 30. 有關數據庫設計的問題