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 |
+-----------+
每个问题可能都有一组用户可以选择的答案,然后将在另一个表中跟踪实际的答案。
数据库旨在存储大量数据,并且大多数都可以很好地扩展。没有必要仅仅为了节省空间而使用较小的正常形式。
添加回答
举报