mysql中检验表设计是否合理_问卷表数据库设计是否合理?

博客内容涉及MySQL数据库中的问卷系统设计,包括问卷主表、问题表、选项表和回答表的结构,并展示了如何通过SQL查询统计每个问题每个选项的回答人数。提供了具体的SQL创建表和插入数据的示例。
摘要由CSDN通过智能技术生成

问卷主表:

5f44669d9023f819b9cfa4031178418d.png

问题表:

5f44669d9023f819b9cfa4031178418d.png

选项表:

5f44669d9023f819b9cfa4031178418d.png

回答表:

5f44669d9023f819b9cfa4031178418d.png

其中选项表中文本类型问题的时候只存储类型,不存item_val

答案表中item_val如果是多选,单选 直接存储的是选项表ID,问答题的话直接就是回答内容,那么

1:统计每个问题每个选项回答人数多少这个sql如何来写 最优方式

实现如下格式

5f44669d9023f819b9cfa4031178418d.png

因为不能传附件,附上sql

/*

SQLyog Ultimate v11.24 (32 bit)

MySQL - 5.0.67-community-nt : Database - questionnaire

*********************************************************************

*/

/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;

/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */;

CREATE DATABASE /*!32312 IF NOT EXISTS*/`questionnaire` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `questionnaire`;

/*Table structure for table `t_answer` */

DROP TABLE IF EXISTS `t_answer`;

CREATE TABLE `t_answer` (

`id` bigint(20) NOT NULL auto_increment COMMENT '系统ID',

`survey_id` bigint(20) default NULL COMMENT '问卷填写情况主表ID',

`question_id` bigint(10) default NULL COMMENT '问题ID',

`item_val` varchar(220) default NULL COMMENT '回答内容',

`iseq_id` bigint(1) default NULL COMMENT '20',

`item_type` int(11) default NULL COMMENT '类型',

`pid` int(11) default NULL COMMENT '记录答卷的 个数',

`sessid` varchar(40) default NULL COMMENT 'sessionid',

PRIMARY KEY  (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='问卷填写情况明细表';

/*Data for the table `t_answer` */

insert  into `t_answer`(`id`,`survey_id`,`question_id`,`item_val`,`iseq_id`,`item_type`,`pid`,`sessid`) values (1,1,1,'1',1,1,1,'qqq'),(2,1,2,'4',1,2,1,'qq'),(3,1,2,'5',1,2,1,'qq'),(4,1,2,'6',1,2,1,'qq'),(5,1,3,'1',1,1,1,'22'),(6,1,4,'你们很好啊',1,3,1,'22');

/*Table structure for table `t_options` */

DROP TABLE IF EXISTS `t_options`;

CREATE TABLE `t_options` (

`id` bigint(10) NOT NULL auto_increment,

`survey_id` bigint(10) default NULL COMMENT '调查Id',

`question_id` bigint(10) default NULL COMMENT '问题Id',

`item_type` int(10) default NULL COMMENT '题目类型',

`item_val` varchar(220) default NULL COMMENT '选项内容',

PRIMARY KEY  (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

/*Data for the table `t_options` */

insert  into `t_options`(`id`,`survey_id`,`question_id`,`item_type`,`item_val`) values (1,1,1,1,'用过'),(2,1,1,1,'没用过'),(3,1,2,2,'洗面奶'),(4,1,2,2,'护肤霜'),(5,1,2,2,'护手霜'),(6,1,2,2,'沐浴露'),(7,1,3,1,'满意'),(8,1,3,1,'不满意'),(10,1,4,3,'文本题');

/*Table structure for table `t_question` */

DROP TABLE IF EXISTS `t_question`;

CREATE TABLE `t_question` (

`id` bigint(20) NOT NULL auto_increment COMMENT '主键',

`survey_id` bigint(20) default NULL COMMENT '主表survey id',

`iseq` bigint(10) default NULL COMMENT '序号 后台处理,界面不显示,用于排序,显示为第几题',

`item_title` varchar(4000) default NULL COMMENT '题目名称',

`item_type` char(2) default NULL COMMENT '题目类型 0:单选项目 1:多选项目 2:文本项目',

PRIMARY KEY  (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='问卷项目明细表';

/*Data for the table `t_question` */

insert  into `t_question`(`id`,`survey_id`,`iseq`,`item_title`,`item_type`) values (1,1,1,'您使用过我们的产品吗?','1'),(2,1,2,'您用过我们的那些产品','2'),(3,1,3,'您对我们的产品满意吗?','1'),(4,1,4,'您怎么评价我们的产品','3'),(5,1,5,'您给我们的产品打几分?','4');

/*Table structure for table `t_survey` */

DROP TABLE IF EXISTS `t_survey`;

CREATE TABLE `t_survey` (

`id` bigint(20) NOT NULL auto_increment COMMENT '主键',

`title` varchar(400) default NULL COMMENT '问卷主题',

`remark` varchar(4000) default NULL COMMENT '备注',

`anonymous` char(1) default NULL COMMENT '匿0: 非匿名 1:匿名名标志',

`is_ok_look` char(1) default NULL COMMENT '完成后允许查看结果0:允许 1:不允许',

`valid_period` bigint(10) default NULL COMMENT '发布后几天内有效',

`start_time` datetime default NULL COMMENT '调查问卷发布的起始时间',

`end_time` datetime default NULL COMMENT '调查问卷结束时间',

`creator` bigint(22) default NULL COMMENT '发布人',

`release_time` datetime default NULL COMMENT '发布日期',

`valid_flag` char(1) default NULL COMMENT '有效标志 0:无效 1:无效 ',

`survey_type` bigint(10) default NULL COMMENT '问卷类型  dm_survey_type',

PRIMARY KEY  (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='问卷项目主表';

/*Data for the table `t_survey` */

insert  into `t_survey`(`id`,`title`,`remark`,`anonymous`,`is_ok_look`,`valid_period`,`start_time`,`end_time`,`creator`,`release_time`,`valid_flag`,`survey_type`) values (1,'客户满意度调查','满意度调查','1','1',20,'2014-11-07 11:03:09','2014-11-07 11:03:12',1,'2014-11-07 11:03:15','1',1);

/*!40101 SET [email protected]_SQL_MODE */;

/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;

/*!40014 SET [email protected]_UNIQUE_CHECKS */;

/*!40111 SET [email protected]_SQL_NOTES */;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值