调查问卷管理系统开发 │ 数据库设计
01、数据库概念结构设计
首先对调查问卷管理系统的数据库进行概念结构设计,采用E-R模型进行建模。
1. 实体及其属性
对系统的分析可得:系统包括用户实体、问卷实体、问题实体、选项实体、问卷答案实体、选项答案实体、文本答案实体。
1) 用户实体
用户实体代表用户的信息,包括用户ID、用户名、密码、姓名、手机号、创建时间、备注等属性。
用户实体及属性图如图11-4所示。
图11-4用户实体及其属性图
2) 问卷实体
问卷实体代表调查问卷的信息,包括问卷ID、标题、创建人、是否匿名、创建时间、说明、限制、问卷类型、图标、链接、开始时间、结束时间、访问规则、密码、背景等属性。问卷实体及属性图如图11-5所示。
■ 图11-5问卷实体及其属性图
3) 问题实体
问题实体代表问卷中设置的问题信息,包括问题ID、标题、问题类型、说明、规定、选择类型、排列类型、排序依据、显示类型、测试、分数、问卷ID、创建人、图片、限制等属性。问题实体及属性图如图11-6所示。
■ 图11-6问题实体及其属性图
4) 选项实体
选项实体代表问卷中问题的选项信息,包括选项ID、问卷ID、问题ID、选项类型、选项内容、数值、答案、排序依据等属性。选项实体及属性图如图11-7所示。
■ 图11-7选项实体及其属性图
5) 问卷答案实体
问卷答案实体代表用户填写的调查问卷信息,包括答卷ID、答卷类型、答卷时间、提交时间、问卷ID等属性。问卷答案实体及属性图如图11-8所示。
■ 图11-8问卷答案实体及其属性图
6) 选项答案实体
选项答案实体及其属性图如图11-9所示。
■ 图11-9选项答案实体及其属性图
7) 文本答案实体
文本答案实体及其属性图如图11-10所示。
■ 图11-10文本答案实体及其属性图
2. 联系
E-R图表示了系统各实体及实体之间的联系,如图11-11所示。实体间的联系主要包括:
(1) 包含1: 问卷与问题之间具有一对多的包含关系。一个问卷包含多个问题,一个问题属于一个问卷。
(2) 包含2: 问卷答案与问题之间具有多对多的包含关系。一个问卷答案包含多个问题,一个问题属于多个问卷答案; 一个问卷答案中的一个问题对应产生一个答案内容。
(3) 对应: 问卷与问卷答案之间具有一对多的对应关系。一个问卷对应多个问卷答案,一个问卷答案对应于一个问卷。
(4) 设置: 问题与选项之间具有一对多的对应关系。一个问题根据问题的类型对应一个或多个选项,一个选项对应一个问题。
(5) 管理: 用户与问卷之间具有一对多的管理关系。一个用户可以管理多个问卷,一个问卷被一个用户管理(不考虑管理员)。
■ 图11-11E-R图
02、数据库逻辑结构设计
根据数据库的概念结构,数据库的逻辑结构如表11-1所示,共由七张表组成。
■表11-1数据库表
(1) 用户表(tb_user)用来存储用户的信息,表的各字段及属性如表11-2所示。
■ 表11-2用户表
(2) 问卷表(tb_survey)用来存储问卷的相关信息,表的各字段及属性如表11-3所示。其中,问卷表的创建人列(tb_survey.creator)与用户表的id(tb_user.id)通过外键关联。
■ 表11-3问卷表
(3) 问题表(tb_question)用来存储问题的相关信息,表的各字段及属性如表11-4所示。其中,问题表的问卷id列(tb_question.survey_id)与问卷表的问卷id列(tb_survey.id)通过外键关联。
■ 表11-4问题表
(4) 问题选项表(tb_question_opt)用来存储问题的各个选项信息,表的各字段及属性如表11-5所示。其中,问题选项表的问卷id列(tb_question_opt.survey_id)与问卷表的问卷id列(tb_survey.id)通过外键关联,问题选项表的问题id列(tb_question_opt.question_id)与问题表的问题id列(tb_question.id)通过外键关联。
■ 表11-5问题选项表
(5) 问卷答案表(tb_answer)用来存储调查问卷的答案信息,表的各字段及属性如表11-6所示。其中,问题答案表的问卷id(tb_answer.survey_id)与问卷表的问卷id(tb_survey.id)通过外键关联。
■ 表11-6问卷答案表
(6) 选项答案表(tb_answer_opt)用来存储问卷客观题的答案信息,表的各字段及属性如表11-7所示。其中,选项答案表的问卷id列(tb_answer_opt.survey_id)与问卷表的问卷id列(tb_survey.id)通过外键关联,选项答案表的问题id列(tb_answer_opt.question_id)与问题表的问题id列(tb_question.id)通过外键关联。
■ 表11-7选项答案表
(7) 文本答案表(tb_answer_txt)用来存储文本答案相关信息,表的各字段及属性如表11-8所示。其中,文本答案表的问卷id列(tb_answer_opt.survey_id)与问卷表的问卷id列(tb_survey.id)通过外键关联,文本答案表的问题id列(tb_answer_opt.question_id)与问题表的问题id列(tb_question.id)通过外键关联。
■ 表11-8文本答案表
- 点赞
- 收藏
- 关注作者
评论(0)