支持逻辑跳转及填答约束的网络问卷调查系统设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
支持逻辑跳转及填答约束的网络问卷调查系统设计与实现
作者:卢锦运等
来源:《软件导刊》2015年第01期
摘要:随着互联网的普及和信息技术的迅猛发展,网络问卷调查已成为数据、资料收集的一种常用手段。传统网络问卷调查系统普遍缺少题目逻辑跳转和用户填答校验功能,针对这一情况提出一种支持逻辑跳转和填答约束的网络问卷调查系统的实现方法。该方法基于校验规则实现了对用户填答的约束,同时通过设置跳转逻辑增强了问卷的灵活性和适应性。该方法在2013年重庆市基础教育质量监测教师问卷调查中得到应用,结果表明,该方法能够提高回收数据的准确性与规范性,具有较强的适用性。
关键词:网络问卷调查系统;JSON;逻辑跳转;填答约束;MongoDb
DOIDOI:10.11907/rjdk.143621
中图分类号:TP319
文献标识码:A 文章编号文章编号:16727800(2015)001010704
0 引言
问卷调查是数据、资料收集的一种常用手段。传统的问卷调查通过人工方式发放、回收、统计问卷。随着互联网的普及和信息技术的迅猛发展,传统人工问卷调查方式越来越无法满足社会发展和人们生活的需求,网络问卷调查以其低成本、高可靠性、高效性、互动性等特点逐渐成为当前一种主流的调查方法[7]。
当前网络问卷调查实现方式主要有两种:①HTML静态页面。这种方式将所有要调查的问题做成HTML页面后上传至服务器,当更新题目信息时需要重新更新HTML页面。因此,静态页面方式效率低下且需要专业人员完成;②基于ASP、PHP等编程语言与数据库相结合制作而成的动态页面。该方式效率较高,操作更为方便,是目前的主流做法。
迄今为止,市面上出现了多种网络问卷调查软件,这些软件基本可以实现数据采集功能,但是大多缺乏对用户输入数据的动态校验,从而使后期对调查数据清理的工作量巨大,同时由于无法设置跳转逻辑题而使问卷灵活性和适用性较差。本文拟结合重庆市基础教育质量监测教师问卷调查系统的设计与实现环节探讨在网络问卷调查系统中如何实现用户填答的约束校验及题目的逻辑跳转功能。
1 系统设计
1.1 系统架构
三层模式具有安全性高、维护成本低、各层之间耦合度较低等优点,因此本文采用了Web 显示层、业务逻辑层和数据层(即B/S/D)的三层模式架构,如图1所示。
图1 三层模式架构
Web显示层主要用于提供人机交互界面,本文中Web显示层通过JavaScript脚本语言实现以下功能:接收用户输入数据、校验用户输入数据、向服务器回传数据、根据用户填答动态生成下一题。
业务逻辑层主要接收客户端请求并将数据传给数据层,同时将处理结果返回至客户端。本文在业务逻辑层采用三层开发框架RTC(RealThinClient SDK)。RTC采用HTTP 协议实现数据传输,具有效率高、稳定性好等优点。
数据层主要用于存储系统使用过程中产生的数据。传统的数据存储方式主要采用Oracle、SQL Server、MySQL等关系型数据库,然而在大数据背景下,传统关系型数据库在高并发读写、高效率存储等方面越来越显得力不从心[1]。鉴于重庆市基础教育质量监测教师问卷调查系统要在两小时内完成数万名教师问卷调查,在高频率的数据读写操作中,为了保证系统的稳定性,本文采用了并发性高、灵活性强、支持海量数据存储的NoSQL(Not-Only SQL)存储系统MongoDb[9]。
1.2 数据库结构设计
MongoDb以keyvalue形式存储数据。相比于传统关系型数据库系统的数据库、表(table)、记录(record)3个层次,MongoDb则由数据库、集合(collection)、文档对象(Documentoriented、BSON)3个层次组成[2],其中MongoDb中的collection对应于关系型数据库里的table。
与传统关系型数据库在使用前必须定义数据存储模型不同,MongoDb的数据存储模式是自由的(schemafree),即在同一个collection里可以有不同格式或类型的文档对象[3]。MongoDb中一个collection的实例如下:
{"_id":"1","USERNAME":"Tom","PASSWORD":"123456"}
{"_id":"2","USERNAME":"LILY","AGE":"10","GENDER":"female"}
{"_id":"3","USERNAME":"Peter","PWD":11111}
虽然MongoDb的数据存储模式自由,但在一般情况下,为了便于数据管理,同一个集合内的文档对象都会以相同格式定义存储。结合重庆市基础教育质量监测教师问卷内容及网络问
卷调查的特点,本文设计了以下几个集合:用户集合(USER_INFO)、问卷集合(SURVEYS)、问卷题目集合(SURVEY_QUESTIONS)、结果集合(SURVEY_ANS)。用户集合主要存储教师相关信息,包括教师登录问卷系统所需的账号和密码。问卷集合用于存储问卷基本信息,包括问卷、问卷指导语以及问卷其它相关属性。问卷题目集合用于存储每套问卷所包含的题目信息,包括、题目类型(本文设计了单选、多选、填空、问答4种题型),以及单选或多选类型问题中可供选择的选项信息、填答约束规则、跳转逻辑设置等。结果集合则用于存放回收的调查数据,其结构根据问卷题目动态生成。
2 关键技术设计与实现
2.1 数据传输格式
在大规模、高并发的Web系统应用中,选择一种合适的数据传输格式至关重要。JSON (JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,易于阅读和编码,同时它是JavaScript规范的子集[8],因此能很好地被大部分浏览器解析,避免了不同浏览器带来的兼容性问题。另一方面,JSON在数据传输效率方面明显优于其它数据传输格式[4,5]。另外,本文所采用的MongoDB数据库以BSON格式存储,而BSON 是一种类JSON二进制形式的存储格式,两者之间转换较为容易。鉴于以上几点,本文选择JSON作为问卷系统的数据传输格式。
以下是以JSON描述一道题目的示例:
{
"ID" : "1",
"TITLE" : "目前,您正在使用的手机是什么品牌?",
"OPTIONS":"1=IPhone;2=三星;3=华为;4=联想;5=其它",
"TYPE" : "多选题",
"ATTACH" : "2;2;;5,6;",
"ISREQUIRED" : "1",
"CONSTRAIN": "{'atype':'multchoise','minc':'1','maxc':'2','mutex':'5'}"
}
该JSON对象包括7个元素:①题目编号(ID)为1;②题目(TITLE)为“目前,您正在使用的手机是什么品牌?”;③选项(OPTIONS)一共包括“IPhone、三星、华为、联想、其