我为我的用户提供了以下民意调查表格,但我不确定应该如何围绕它构建数据库。
用户将收到 20-30 个民意调查问题,如下所示:
你最喜欢什么颜色?
- 蓝色
- 绿色
- 黄色
- 红色
- 其他
将能够选择上述答案之一,并且还必须提供大约 100 个单词
解释他选择该答案的原因。
我目前有两张 table 。一份保存民意调查问题,另一份保存民意调查选项。我不确定的是我应该如何保存用户的答案。
问题是因为民意调查太大了,用户可以部分完成,稍后再回来,更改他的答案并继续,直到他 100% 完成,然后我就可以查看我的面板中的整个结果。所以他基本上可以保存自己的进度并随时更改。最重要的是,我想“删除”特定用户的整个民意调查,并能够重新进行,但同时保留他以前的答案的历史记录。
所以我不确定这样的表格是否是满足我需求的最佳选择:
id
user_id
poll_questiond
poll_answer
poll_text
last_update
status
似乎这样的事情会造成巨大的困惑。有更好的方法吗?
最佳答案
我会创建 3 个表:
table_polls
+----+---------------------+--------+
| id | description | status |
+----+---------------------+--------+
| 1 | Example description | 1 |
+----+---------------------+--------+
table_poll_options
+----+---------+-------------+
| id | poll_id | description |
+----+---------+-------------+
| 1 | 1 | Question 1 |
| 2 | 1 | Question 2 |
+----+---------+-------------+
table_poll_answers
+----+-----------+---------+----------------+---------------------+
| id | option_id | user_id | description | created_at |
+----+-----------+---------+----------------+---------------------+
| 1 | 1 | 1 | A valid reason | 1970-01-01 00:00:00 |
| 1 | 2 | 2 | Another reason | 1970-01-01 00:00:00 |
+----+-----------+---------+----------------+---------------------+
概括一下上面的内容:
民意调查有很多问题。
投票问题有很多答案
民意调查答案有一个用户。
<小时/>这样,您就可以通过数据透视表将所有内容分开,并且不再需要在投票表中创建困惑的行。
如果您需要日期等额外信息,您当然可以扩展表格。
关于php - 可更新的投票+解释数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42832592/