3 回答

TA貢獻1839條經驗 獲得超15個贊
我認為您的模型#2很好,但是您可以查看存儲問題和預先制定的答案(提供的答案)的更復雜的模型,并允許它們在不同的調查中重復使用。
- 一項調查可能有很多問題; 在許多調查中可以(重新)使用一個問題。
- 可以為許多問題提供一個(預先制作的)答案。一個問題可以提供許多答案。一個問題可以在不同的調查中提供不同的答案??梢栽诓煌恼{查中為不同的問題提供答案。有一個默認的“其他”答案,如果一個人選擇其他人,她的答案會記錄在Answer.OtherText中。
- 一個人可以參加許多調查,一個人只能在調查中回答一次具體問題。

TA貢獻1772條經驗 獲得超8個贊
絕對是選項#2,我想你可能在當前架構中有疏忽,你可能想要另一個表:
+-----------+
| tblSurvey |
|-----------|
| SurveyId |
+-----------+
+--------------+
| tblQuestion |
|--------------|
| QuestionID |
| SurveyID |
| QuestionType |
| Question |
+--------------+
+--------------+
| tblAnswer |
|--------------|
| AnswerID |
| QuestionID |
| Answer |
+--------------+
+------------------+
| tblUsersAnswer |
|------------------|
| UserAnswerID |
| AnswerID |
| UserID |
| Response |
+------------------+
+-----------+
| tblUser |
|-----------|
| UserID |
| UserName |
+-----------+
每個問題可能都有一組用戶可以選擇的答案,然后將在另一個表中跟蹤實際的答案。
數據庫旨在存儲大量數據,并且大多數都可以很好地擴展。沒有必要僅僅為了節省空間而使用較小的正常形式。
添加回答
舉報