亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

調查數據庫設計

調查數據庫設計

紅糖糍粑 2019-08-15 14:07:55
調查數據庫設計我需要創建一個調查,其中答案存儲在數據庫中。我只是想知道在數據庫中實現這個的最佳方法是什么,特別是所需的表。調查包含不同類型的問題。例如:注釋的文本字段,多項選擇題以及可能包含多個答案的問題(即檢查所有適用的答案)。我想出了兩個可能的解決方案:創建一個包含每個調查提交答案的巨型表格。每列將對應于調查的答案。即SurveyID,Answer1,Answer2,Answer3我不認為這是最好的方法,因為在這項調查中有很多問題,如果調查要改變,似乎不是很靈活。我想到的另一件事是創建一個問題表和答案表。問題表將包含調查的所有問題。答案表將包含調查中的各個答案,每行都與一個問題相關聯。一個簡單的例子:tblSurvey:SurveyIDtblQuestion:QuestionID,SurveyID,QuestionType,QuestiontblAnswer:AnswerID,UserID,QuestionID,AnswertblUser:UserID,UserName我的問題是,可能有大量的答案會使答案表變得非常龐大。在性能方面,我不確定它是如此之大。我很感激任何想法和建議。
查看完整描述

3 回答

?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

我認為您的模型#2很好,但是您可以查看存儲問題和預先制定的答案(提供的答案)的更復雜的模型,并允許它們在不同的調查中重復使用。

- 一項調查可能有很多問題; 在許多調查中可以(重新)使用一個問題。 
- 可以為許多問題提供一個(預先制作的)答案。一個問題可以提供許多答案。一個問題可以在不同的調查中提供不同的答案??梢栽诓煌恼{查中為不同的問題提供答案。有一個默認的“其他”答案,如果一個人選擇其他人,她的答案會記錄在Answer.OtherText中。 
- 一個人可以參加許多調查,一個人只能在調查中回答一次具體問題。 

查看完整回答
反對 回復 2019-08-15
?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

絕對是選項#2,我想你可能在當前架構中有疏忽,你可能想要另一個表:


+-----------+

| tblSurvey |

|-----------|

| SurveyId  |

+-----------+


+--------------+

| tblQuestion  |

|--------------|

| QuestionID   |

| SurveyID     |

| QuestionType |

| Question     |

+--------------+


+--------------+

| tblAnswer    |

|--------------|

| AnswerID     |

| QuestionID   |

| Answer       |

+--------------+


+------------------+

| tblUsersAnswer   |

|------------------|

| UserAnswerID     |

| AnswerID         |

| UserID           |

| Response         |

+------------------+


+-----------+

| tblUser   |

|-----------|

| UserID    |

| UserName  |

+-----------+

每個問題可能都有一組用戶可以選擇的答案,然后將在另一個表中跟蹤實際的答案。

數據庫旨在存儲大量數據,并且大多數都可以很好地擴展。沒有必要僅僅為了節省空間而使用較小的正常形式。


查看完整回答
反對 回復 2019-08-15
  • 3 回答
  • 0 關注
  • 502 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號