我已经为用户准备了以下民意调查表,但不确定如何围绕它构建数据库。
用户将收到20-30个轮询问题,如下所示:
什么是你最喜欢的颜色?
蓝色
绿色
黄色
红色
其他
将能够选择以上答案之一,并must also provide around 100 words
解释为什么他选择该答案。
我目前有两张桌子。一个保存民意测验问题,另一个保存民意测验选项。我不确定如何保留用户答案。
之所以这样,是因为民意调查规模如此之大,用户可以部分进行调查,稍后再回来,更改答案并继续进行,直到完成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/