我已经为用户准备了以下民意调查表,但不确定如何围绕它构建数据库。

用户将收到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/

10-09 19:58