背景
参考示例腾讯问卷
项目涉及到有关调查问卷的功能,参考了一些问卷网站的示例,大概了解了一下,一份简单的调查问卷包含哪些元素,它们之间存在哪些关联关系,由此设计出一份简单的数据库表结构。
一份问卷的基本元素
- 调查问卷主表
1 | sql复制代码CREATE TABLE `survey_info` ( |
问卷主表比较简单,相关描述已注释。
- 问题主表
1 | sql复制代码CREATE TABLE `question_info` ( |
问题主表,关联问卷主键ID
- 选项表
1 | sql复制代码CREATE TABLE `option_info` ( |
问题类型是天空的不需要往选项表里插入内容
到此一份简单的调查问卷基本完成
一份问卷不只是看看
有了问卷之后,我们就需要填写问卷,因此我们还需要一份调查问卷的答案表
- 答案主表
1 | sql复制代码CREATE TABLE `answer_info` ( |
- 答案子表
1 | sql复制代码CREATE TABLE `answer_option_relation` ( |
其实两张表可以合并为一张表。问题类型为填空时,答案也不仅限为问题描述,也可能是一张图,这里也可以直接放图片的链接地址,避免再关联去查图片的链接;
统计
作为用户来说,不能像纸质时代那样,一份份自己去统计,因此我们需要给用户一份统计结果展示。个人没有去设计统计表的数据表结构,仅仅是通过关联查询得出的结果来给用户展示。这里提供两个思路:
- 像我一样关联去查
- 设计一份调查问卷的结果统计表,你可以写一个job在调查问卷截止的时候去做结果统计然后插入到这张表中。用户查看结果的时候,直接从这张表里取数据即可。
本文转载自: 掘金