1、湖南第一师范学院 毕业论文(设计)题目模拟ETC收费系统的设计与实现学生姓名于兴连学号11403090218指导教师洪伟院部名称信息科学与工程学院专业班级11计科 2班完成时间2015年5月湖南第一师范学院教务处制 本科毕业论文(设计)模拟ETC收费系统的设计与实现学生姓名:于兴连院部名称:信息科学与工程学院专业名称:计算机科学与技术指导教师:洪伟毕业设计作声明1本人提交的毕业论文(设计)是本人在指导教师指导下独立进行研究取得的成果。除文中特别加以标注的地方外,本文不包含其他人或其它机构已经发表或撰写过的成果。对本文研究做出重要贡献的个人与集体均已在文中明确标明。2本人完全了解湖南第一师范学院
2、有关保留、使用学位论文的规定,同意学院保留并向国家有关部门或机构送交本文的复印件和电子版,允许本文被查阅、借阅或编入有关数据库进行检索。同意湖南第一师范学院可以采用影印、打印或扫描等复制手段保存和汇编本文,可以用不同方式在不同媒体上发表、传播本文的全部或部分内容。3湖南第一师范学院在组织专家对毕业论文(设计)进行复审时,如发现本文抄袭,一切后果均由本人承担,与学院和毕业论文指导教师无关。 作者签名: 日期:二一五 年 月 日摘 要ETC(Electronic Toll Collection)收费系统是一种利用安装在ETC车辆上的车载装置自动识别车辆的现代化收费系统。ETC自动化收费方式能减少基
3、建投入和提高道路通行能力,同时降低收费站口的噪声和减少汽车尾气排放。本模拟ETC收费系统选用B/S(Browser/Server,浏览器/服务器)体系架构,开发环境选用Eclipse工具,后台选用MySQL开源数据库,Web服务器选用tomcat容器,网页实现选用JSP,结合Struts2和MVC(Model-View-Control)设计模式、Java、JS技术进行开发。本模拟ETC收费系统的主要功能有用户管理、车道管理、车辆管理、车主管理、费率管理、黑名单管理、模拟收费等功能。其核心功能ETC模拟收费通过模拟车辆驶入、驶出ETC收费站,综合车辆信息、车道信息、收费站信息计算车辆的行车费用以
4、实现自动收费。本模拟ETC收费系统为实际的ETC收费提供了参考数据和实践方案。关键词:ETC;ETC车道管理;ETC车辆管理;不停车收费ABSTRACTThe ETC (Toll Collection Electronic) is a toll system which automatically identifies the vehicles modern technology by using the vehicle mounted on the ETC vehicle. ETC automatic charging method can reduce capital investment
5、 and improving the traffic capacity of the road, while reducing the toll station noise and reduce vehicle exhaust emissions.This simulated ETC toll system chooses B/S(Browser/server) architecture, and the development environment select eclipse tool, and background using MySQL database and web server
6、 using Tomcat container, web page using JSP, combine Struts2 and MVC (model view control) design pattern, Java, javascript technology for development.The main functions of the simulted ETC are user management, lane management, vehicle management, vehicle owner management and rate management, blackli
7、st management, simulated charge, etc. The core function is ETC simulated charges automatic by simulating the vehicle entering, pulled out of etc toll station, integrated vehicle information, lane information, charging station information vehicle cost calculation. This simulated ETC charging system p
8、rovides the reference data and practical scheme for the actual ETC charge.Key words: ETC;ETC Lane Management; ETC Vehicle Management;No Parking Charge目 录摘 要IABSTRACTII第1章 绪 论11.1 课题背景与现状11.2 课题研究与解决的问题11.3 课题研究的内容与意义21.4 课题研究的思路和方法2第2章 相关开发工具与技术介绍32.1 Java言介绍32.2 MySQL和Eclipse简单介绍32.3 Tomcat服务器介绍42.
9、4 MVC设计模式与Struts2框架介绍42.5 B/S结构介绍4第3章 模拟ETC收费系统分析53.1可行性分析53.1.1 技术可行性53.1.2 经济可行性53.1.3 社会可行性53.2模拟ETC收费系统需求分析63.2.1模拟ETC收费系统功能需求分析63.2.2模拟ETC收费系统数据分析8第4章 模拟ETC收费系统设计104.1系统设计104.1.1系统总体结构设计104.1.2系统总处理流程设计114.1.3系统功能模块设计124.1.4 系统接口设计134.2 系统数据库设计144.2.1概念结构设计144.2.2关系模式设计144.2.3关系数据库表设计154.3 系统详细
10、设计22第5章 模拟ETC收费系统实现245.1模拟ETC收费系统框架层次245.2登录功能实现245.3后台功能模块实现255.4后台详细功能实现265.4.1车道信息管理265.4.2车辆信息管理285.4.3车主信息管理305.4.4收费费率管理315.4.5行车记录查询325.4.6黑名单管理335.4.7系统数据表信息335.4.8个人设置335.4.9车辆驶入情况345.5模拟收费345.5.1收费算法介绍345.5.2模拟驶入355.5.3模拟驶出365.5.4收费关键代码37第6章 结束语42第7章 参考文献4346毕业论文(设计)模拟ETC收费系统的设计与实现第1章 绪 论1
11、.1 课题背景与现状目前大部分高速公路都是采用传统的人工收费,当高速公路上的车流量急剧增加时,人工收费方式车辆通行的效率低,造成通行缓慢,堵塞严重、增加交通事故等问题1。通过相关部门长期而且广泛的研究,结果表明:如果仅仅只是依靠修建更多的基础设施,增加更多的高速公路来解决目前急剧增长的车辆通行需求是不可取的,也是不科学的。所以现代社会高性能、高速度的电子计算机和通信技术的迅猛发展,能够促进我国高速公路收费向不停车自动收费的方式发展1。所以好好利用现代的高科技水平,能够帮助人们方便快捷的出行,同时解决高速公路路口收费拥堵的问题。国外很多国家比如说日本、欧洲各国以及美国等发达国家很早以前就开始对E
12、TC收费方式中的关键技术和标准规范做了大量的深入研究2。由于国内对ETC收费方式研究的起点低和研究时间较晚,再加上国内相关的电子技术和国际水平有很大的差距,所以ETC收费在我国还没有进行大规模的应用3。有些地方还只是出于实验阶段,目前还不能解决中国日益增加的交通流量,所以在这方面的研究和应用还有很长的路要走,所以研究ETC收费方式是重要的,同时也是必要的。1.2 课题研究与解决的问题传统的收费模式主要存在以下问题:高速公路上面存在换卡/倒卡作弊的问题,长途汽车司机在中途换;长时间将车辆逗留在告诉公路,高速公路各联网单位之间的联系相对来说比较少,管理方面存在严重脱节4。所以导致超时车辆和无牌照车
13、辆无法进行查找,对这些违规车辆不能进行及时的处罚和处理,造成高速公路上不安全因素的提高,给其他的司机带来危险,同时也给高速公路的管理带来麻烦和困扰。还有免费车辆对通过的收费站点要求非常高,如果对这些免费车辆的不严监管,当收费站车辆非常多时,这会带来管理造成混乱、用于通行的IC大量流失问题、额外增加管理费用。另外各个地方的收费标准也不统一,收费标准的随意性较大,差别较大,存在胡乱收费,存在人情收费,存在不开具发票和出具废旧的发票问题,所以高速公路管理方面出现的这些亟待解决的问题。以上这些种种是目前传统收费方式不能解决的问题。ETC收费系统能很好的解决全部或部分问题,所以ETC收费的研究与设计,能
14、给目前高速公路的管理带来极大的方便。1.3 课题研究的内容与意义模拟ETC收费系统实现的主要功能模块有:ETC用户管理、系统参数管理、车ETC车道管理、ETC车辆管理、ETC车主管理、费率管理、ETC黑名单管理、ETC模拟收费等主要功能。其中ETC用户管理包括后台管理员对用户的添加,修改,删除,查询;系统模块包括菜单维护,角维护,权限维护,数据表维护,系统日志;ETC车道管理包括车道和收费站的查询,添加,修改和删除;ETC车辆管理包括对ETC车辆基本信息和机动车辆类型的查询,添加,修改和删除;ETC车主管理包括车主信息、驾驶证类型和身份证件类型的查询,添加,修改和删除;收费费率管理包括费率的查
15、询,添加,修改和删除;ETC黑名单管理是对车辆违规行驶后的惩罚管理;ETC模拟收费功能包括模拟驶入和模拟驶出,车辆驶出收费站时系统计算消费金额并模拟自动扣费。ETC模拟收费是当安装有车载装置的车辆进入、离开ETC高速公路上的收费站时,系统通过车辆上的车载装置读出车辆信息,驶入时记录车辆的驶入信息,驶出时计算车辆本次的行车费用。本次研究可以提升了高速公路的车辆通行能力,减少了基建投入降。模拟ETC收费主要是为了实际的ETC收费系统提高参考数据,降低高速公路的各种管理成本,同时可促使公路管理提高到一个更高的层次,减少噪声和尾气而保护环境。1.4 课题研究的思路和方法首先通过互联网和图书馆等路径查阅
16、相关数据了解目前主流的B/S开发基本模式和各类开发实践经验。然后回顾软件工程,软件项目管理,数据库原理等相关理论知识。再结合国内外目前研究现状、课题背景、高速公路收费基本情况,整理出系统新的需求分析。再进一步确定设计开发策略和最佳路径。逐步完善模拟ETC收费系统的设计与开发。具体研究方法如下。准备阶段:主要采用调查法,包括查阅文献数据、查阅实例,查阅实际情况等。实施阶段:查阅数据法、循序渐进法(确定需求、数据字典,详细设计实施步骤,逐步测试实施)、请教老师与同学。成果形成阶段:完整测试法、总结法(回顾、反省、总结自己的研究之路)。第2章 相关开发工具与技术介绍2.1 Java言介绍Java语言
17、是面向对象编程的高级语言,拥有许多其他语言没有的特性,并且非常适合企业级应用的开发5。Java是具有多种功能的语言,开发Web程序和应用程序都可以选用Java语言。也可以用于Web服务器、嵌入式系统和智能设备中,还可以用于智能手持设备上的APP(应用程序,Application的缩写),Java语言成为目前Web应用的主流语言。Java拥有简单,面向对象,解释型,可移植,多线程的特点。而且Java语言的语法与C和C#的语法接近,另一方面Java语言也丢弃了C+中的重载、多继承、指针的特点5。特别地Java语言提供了自动垃圾回收,使得程序员在开发过程中无需像C那样手动的去管理内存的申请与内存的释
18、放。JVM(Java虚拟机,Java Virtual Machine的缩写)也让用户可以做到了“一次编译,到处运行”,做到真正的跨平台运行。2.2 MySQL和Eclipse简单介绍Eclipse 是一个面向所有用户的开源的开发集成平台。对于Eclipse本身来说它是框架和多种服务,通过许多不同的插件组件成功能强大的开发平台,而且Eclipse自己本身也附带了一个标准的插件集,包括Java开发工具5。而且Eclipse也是一个非常优秀的跨平台的集成开发环境。也支持显示语言Html(超级文本标记语言,Hyper Text Markup Language的缩写)、CSS(层叠样式表,Cascadi
19、ng Style Sheets的缩写)、JSP(Java服务器页面,Java Server Pages的缩写)和控制语言Javascript、和Struts2、Spring、Hibernate等框架的集成。它同时也集成了数据库、Java Web开发、发布和应用程序服务器,是Web开发的免费的而且比较好的开发工具,对于本次开发要求不是特别高的模拟ETC收费系统来讲我没有必要去选择付费工具MyEclipse,而且Eclipse基本能满足我这次的开发需要。因为eclipse可以集成实现编码、调试、测试、发布等众多功能,所以在实际的开发过程中也大大提高了开发的整体工作效率。模拟ETC收费系统采用的是2
20、012年6月发布代号为Juno的4.2版本。MySQL是一个目前非常被很多公司和个人用户广泛使用的开源数据库,很多大型网站都使用MySQL作为他们的后台数据库5。在被Oracle收购之后,MySQL也吸收了许多Oracle的长处,比如说体积变得更小、速度变得更快、成本变得更低和性能变得更高。正是因为这些优点所以很多中小型网站会选择MySQL。2.3 Tomcat服务器介绍Tomcat服务器是一个阿帕奇免费开放的Web应用中的服务器容器,尤其应用在中小型系统、并发访问用户多的服务器上,是Web应用开发的常用服务器6。Tomcat是Apache服务器独立运行的一个扩展,所以Tomcat可以作为一个
21、独立的进程在机器中单独运行。Tomcat的WebContent根目录下包含有Html和Jsp文件、WEB-INF目录和WEB-INF目录。WEB-INF目录下有一个web.xml文件和一个lib目录。其中web.xml是Web应用的配置文件。通常Web应用所依赖的类和引入的jar文件都到WEB-INF下的lib目录下。而且WEB-INF目录是一个安全且只能够让服务器访问的目录。客户端是不能对这个目录进行访问的,所以通常Web应用的一些对于安全性要求相对来说比较高的文件都会放在这个目录下面。 2.4 MVC设计模式与Struts2框架介绍MVC即模型视图控制模式,它是一种利用模型驱动的设计模式,
22、它能提高程序的维护性,减少各个模块之间的相互耦合程度,而且有助于管理比较复杂的程序,同时提供对网页开发技术JSP、Html、CSS和JavaScript的控制。MVC主要分为Model(模型)View(视图)Controller(控制器)三个部分7。其中Model(模型)是主要负责处理数据库中数据部分。View(视图)是主要负责处理接口显示数据的部分。Controller(控制器)是主要负责处理使用者交互的部分,通过从视图读取数据,控制用户输入,然后模型发送数据。Struts2是在WebWork和Struts1的基础上结合成了一个全新的后台框架。但Struts2仍然是以WebWork为核心,通
23、过利用拦截器的机制来接收和处理用户的各种请求,这样的设计方式能够使得实际项目中的业务逻辑和ServletAPI(API,应用程序编程接口,Application Programming Interface的缩写)进行全的分离,所以给给开发者提供了极大的方便,Struts2在MVC模式项目中处在控制层。2.5 B/S结构介绍B/S模式是在Web2.0之后流行起来的程序设计结构7,代表浏览器和服务端进行交互,结果直接在浏览器上显示。能够把客户端统一定位为浏览器这个特点,让开发者能够更好的开发服务端程序,而不需要关注操作系统的版本,降低开发成本。第3章 模拟ETC收费系统分析3.1可行性分析3.1.
24、1 技术可行性模拟ETC收费系统所需的关键技术要求,以及现有掌握程度,存在的差距等方面进行分析如表3-1所示。表3-1 模拟ETC收费系统的技术可行性分析关键技术项要求现有水平对照分析J2EE熟练熟练可以满足要求MySQL熟练精通可以满足要求Struts2熟练精通可以满足要求esayUI熟练熟练可以满足要求JS技术熟练熟练可以满足要求ZUI熟练熟练可以满足要求SQL语句熟练精通可以满足要求从表中所示的信息,可以看到在技术方面,本系统的可行性要求是可满足的。3.1.2 经济可行性综合现有高速公路的各方面信息,总体来说,虽然对检测硬件性能的要求较高,但是经过一定的研究,硬件技术已经有了很大的飞跃,
25、能够满足ETC的收费硬件检测方面的要求8。采用ETC收费方式产生的效益主要体现在如下所示三个方面:1) ETC车道的通行能力会比传统的收费方式提高4-6倍,收费站入口处的车辆通行水平会提高4倍左右,收费站出口的车辆通行水平会提高6倍左右;2) ETC车道的建设会节约很多用于基础设施建设的成本,而且占用土地面积少,全国的高速公路收费站的数量很庞大,如果全国的高速公路都采用ETC收费方式,那么节省下来的土地面积会是非常庞大的资源;3) 节省因车辆进入或离开高速公路因排队的时间,排队等待的时间减少了,那么汽车因少时间停留甚至是不停留,同时也会节省很多的燃油,减少燃油燃烧产生的废气,保护环境,因此在经
26、济可行性方面的要求也是可以满足的。3.1.3 社会可行性随着国家对ETC收费方式的应用,社会对ETC收费方式有了更加明确的了解,ETC收费方式在未来的高速公路上的应用具有良好的应用前景。所以,ETC收费系统的研究和开发是非常必要的。不停车收费技术极其适合用在高速公路、交通比较繁忙的桥梁和隧道下使用。实施不停车收费,可以让车辆高速通过收费站,大大提高公路的通行能力,同时高速公路的收费方式进入电子化,也可以降低收费的管理成本,有利于提高高速公路的运营效率,降低收费站的噪声和尾气排放水平9。提高了公路的通行能力,所以公路管理部门在就建立收费站时,可以缩小规模,从而节约了基础设施建设的成本和公路运营时
27、的管理成本9。而且,ETC收费系统对城市而言,它就不简简单单的仅仅只是一项先进的收费技术,它更是一种对交通高效管理的手段。3.2模拟ETC收费系统需求分析3.2.1模拟ETC收费系统功能需求分析本系统的用户角色分为管理员人员、车主。下面将按照系统功能以及用户角色进行用例图分析。用例图是软件产品外部特性描述的视图,它从用户的角度而不是开发者的角度来描述软件产品的需求,分析软件产品所需的功能和行为8。用例图用于对系统、子系统或系统的行为进行可视化的表示,以方便系统的使用者更清晰地理解这些元素的用途,也便于系统的开发人员最终实现这些元素。图3-1所示的是系统的总用例图。图3-1 系统的总用例图车道管
28、理功能:首先系统管理员登录系统根据实际情况对ETC进行增删改。图3-2所示的是具体的用例情况。图3-2 车道管理和站点信息管理用例图车辆管理功能:首先系统管理员登录后台根据实际情况对车辆类型,ETC车辆信息进行增删改查,然后向ETC系统注册车辆信息后,车辆就能在高速公路上使用ETC收费方式。图3-3所示的是具体的用例情况。图3-3车辆类型管理功和车辆信息管理用例图高速公路收费费率管理: 首先系统管理员登录系统根据实际情况车辆收费费率信息进行增删改查,车辆在高速公路上使用ETC收费方式通过费率计算车辆行车费用。驾驶证信息的管理功能:系统管理员登录后台向系统初始化基础数据,在此不再做详细的说明。行
29、车记录信息的查询功能: 系统管理员登录后台可以查询所有的行车记录信息,车主登陆后台只能查询自己在高速公路上的行车记录信息。图3-4所示的是具体的用例情况。图3-4行车记录信息的查询功能用例图收费功能:模拟收费功能,模拟车辆的驶入,车辆的驶出,车辆驶出收费站时,计算出车辆本次的行车费用。如图3-4所示的是具体的用例情况。图3-4模拟收费(模拟驶入和驶出)功能用例图3.2.2模拟ETC收费系统数据分析本系统会产生数据会有车辆信息、车主信息、车道信息、收费站信息、收费费率信息、驾驶证信息、行车记录信息、车辆类型信息、车主违规信息、车主黑名单信息、用户信息、菜单信息、角色信息、角色权限信息,所以根据这
30、些信息大致整理出的数据结构信息有如表3-2所示。表3-2 数据结构信息1用户信息2菜单信息3权限信息4车道类型信息5角色信息6车道信息7收费站信息8收费站类型信息9车辆信息10车辆类型信息11车主信息12身份证件类型信息13驾驶证信息14收费费率信息15行车记录信息16黑名单信息第4章 模拟ETC收费系统设计4.1系统设计模拟ETC收费系统主要包括ETC车道信息管理,包括向系统进行注册、注销、修改和条件查询车道信息等功能;ETC车辆信息管理,包括向系统进行注册、注销、修改和条件查询车辆信息等功能;ETC车主信息管理,向系统注册、注销、修改和条件查询车主信息等功能;ETC车主黑名单管理,包括把违
31、规车辆移入、移出黑名单同时对违规车辆进行违规罚款等功能;高速公路收费费率信息管理,它包括向系统注册、注销、修改和条件查询收费费率信息等功能;模拟收费,包括模拟驶入和模拟驶出两个功能,当车辆驶入车道时系统自动记录车辆的车牌号码、驶入车道编号、驶入收费站编号、驶入时间和驶入状态等信息,当车辆驶出车道时,系统通过查询该车辆的驶入信息然后结合驶出车道、驶出收费站以及收费费率计算出车辆的过路使用费用;数据库管理,包括对数据库的参数配置、数据库的备份、数据库遇到灾难时的数据恢复、用户注册审核、用户权限管理、用户角色授权等功能;个人设置,包括退出系统时清空该用户的所有会话信息。4.1.1系统总体结构设计模拟
32、ETC收费系统的设计应满足结构简洁、条理清晰的特点,而多层次结构能很好的应用到系统中,能达到要求的这些效果6。模拟ETC收费系统由三部分组成:前台模拟收费模块,系统管理模块和系统数据库。前台访问系统进行模拟收费,车主通过前台访问登陆系统查看自己的个人信息和行车记录信息,后台管理员通过登录系统后台向系统初始化基础数据和其他基础数据的录入,管理数据库相关数据。本系统的组成如图4-1所示。图4-1 系统关系图根据系统关系图可以设计出模拟ETC收费系统的结构图。下面以结构图来描述模拟ETC收费系统的总体结构,框内注明了模块的名字,方框之间的直线表示模块之间的关系。详情如图4-2所示。图4-2 系统结构
33、图4.1.2系统总处理流程设计模拟ETC收费系统处理总流程主要包括系统登录、系统识别用户类型、系统根据不同的用户类型获取不同的用户菜单、车辆管理、车道管理、车主管理、驾证管理、费率管理、行车记录查询、黑名单管理等子流程。具体情况如图4-3所示。图4-3 系统总流程图4.1.3系统功能模块设计前台普通车主用户的功能主要有:车主通过前台登录系统、退出系统、个人行车记录信息查询、个人基本信息查询、个人基本信息修改。详情如表4-1所示。表4-1 前台车主功能模块表功能名称功能描述车主通过前台登录系统操作之前必须凭借登录名、密码、验证码进行登录。退出系统操作结束后可以退出系统,清除当前用户的会话信息。行
34、车记录信息查询查看自己的行车记录信息个人基本信息查询查看自己的个人基本信息个人基本信息修改修改个人基本信息(更改登陆密码、联系方式、家庭住址、更换银行卡信息等)前台模拟收费功能有模拟驶入、模拟驶出、收费模拟,详情如表4-2所示。表4-2 模拟收费功能模块表功能名称功能描述模拟车辆驶入实现模拟车辆的驶入,记录车辆的驶入信息模拟车辆驶出实现模拟车辆的驶出,记录车辆的驶出信息收费模拟模拟车辆驶出时,查询车辆的驶入信息结合驶出信息和费率信息计算车辆本次行车消费金额,保存收费信息后台管理员的功能有登录后台管理系统、退出后台管理系统、车道管理、车辆管理、车辆类型管理、车主管理、驾驶证信息管理、收费费率管理
35、、角色权限管理等功能,详情如表4-3所示。表4-3 后台管理员功能模块表功能名称功能描述登录后台管理系统操作之前必须凭借登录名、密码、验证码进行登录。退出后台管理系统操作结束后可以退出系统,清除当前用户会话信息。车道管理实现对ETC车道信息的增删改查。车辆管理实现对ETC车辆信息的增删改查。车辆类型管理实现对ETC车辆类型信息的增删改查车主管理实现对ETC车主信息的增删改查。驾驶证信息管理实现对驾驶证信息的增删改查收费费率管理实现对ETC收费费率信息的增删改查角色权限管理 管理员能拥有对整个系统的权限操作;车主用户更改个人信息(联系方式,登录密码),查看公路网,车道,收费站,费表,行车消费等信
36、息4.1.4 系统接口设计外部接口方面,对于任何系统用户都需要一个友善接口。因此在界面设计上,应做到简单明了,容易操作,并且界面的布局要突出显示重要及出错信息6。外观上也要多考虑用户对Window风格的熟悉度,应尽量往用户感受方面靠。系统也采 用了MVC 的设计模式,做到了比较完善的模型-视图控制为一体。接口上的功能也要做到简单易懂,在具体情况下有完善的错提醒。总的来说,系统的用户接口应做到可靠、简单、易学习和使用。服务器上的程序可以使用MySQL数据库,并且能够对数据库进行新增、修改、删除、查询等等这些基本的操作。内部接口方面,各模块间分别根据功能有自己单独的接口设计,有:车道接口,车辆接口
37、等。4.2 系统数据库设计4.2.1概念结构设计概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型8。数据模型中包含3种相互关联的信息:数据对象、数据对象的属性及数据对象彼此间相互连接的关系。通常使用E-R图(实体-联系图,Entity Relationship Diagram的缩写)来建立数据模型。E-R图中包含了实体、属性和关系3种基本成分8。 实体是E-R模型的基本对象,是现实世界中各种事物的抽象。模拟ETC收费系统中的实体有:车辆、车辆类型、车主、驾证类型、收费费率、车道、车道类型、站点、站点类型。本系统中各实体之间的联系是一种车辆对应多辆车辆即一对多关系、一个车
38、主对应一种驾驶证类型即一对一关系、一种车道类型对应多条车道即一对多关系、一种站点类型对应多个站点即一对多关系、一辆车对应一个车主即一对一关系、一条车道对应多个站点即一对多关系、一种车辆类型对应一种收费费率即一对一关系。基于以上信息的分析可以得出模拟ETC收费系统中实体联系图(E-R图)如图4-4所示。图4-4 E-R图4.2.2关系模式设计根据对概念结构设计中系统实体、属性、联系三方面的信息分析,再结合对E-R图的设计,可以得出本系统的关系模式(主键用下划线标注)如下。用户(用户表id、用户名、用户密码、用户姓名、用户角色、密码修改状态、账号冻结状态);车道类型(车道类型表id、车道类型编号、
39、车道类型名称);车道(车道表id、车道编号、车道名称、车道类型、车道总长度、起始地址、结束地址、收费站数量、行驶车速、使用状态、备注);收费站(车道类别表id、车道编号、收费站编号、收费站名称、收费站距离起点的距离、收费站类型编号、交叉车道编号、交叉车道名称、备注);收费站类型(收费站类型表id、类型编号、类型名称);车辆(车辆表id、编号、名称、类型编号、类型大类、品牌、生产商、生产日期、使用日期、最大里程、引擎编号、驱动类型、车轴距、自重、载重、座位数量、最高时速、尾气排量、车牌号码、备注、驶入状态);车辆类型(车辆类型表id、类型编号、父类型编号、类型名称、运行最小总质量、运行最大总质量
40、、车辆最小长度、最大长度、最小排量、最大排量);车主(车主表id、车主姓名、性别、证件类型、证件号码、驾驶证代码、车牌号、手机、电话、邮箱、住址、备注);驾驶证(驾驶证表id、驾驶证代号、准驾车型、其他准驾车型);收费费率(收费费率id、车辆类型、费率、是否可用、备注);行车记录(行车记录表id、车牌号、驶入状态、驶入车道编号、驶出车道编号、驶入收费站编号、驶出收费站编号、驶入时间、驶出时间、单次行车里程、超速状态、超速罚款、行车消费金额);黑名单(黑名单表id、车牌号、黑名单状态、移入单时间、移出单时间、移入原因、移出原因、移出操作员)。4.2.3关系数据库表设计系统功能的分析与数据的结构关
41、联及使用都首先反映在数据库的设计过程中,模拟ETC收费系统中的车辆管理、车道管理、车主管理以及其他模块管理和模拟收费的相关数据表的设计是本系统的一项核心工作,所以所有的管理工作都必须以数据为中心。因此在对系统进行数据库表设计时,设计出的表要尽可能减少数据冗余,确保数据的准确性,有效的控制冗余有助于提高数据库的性能,节省不必要的磁盘空间浪费10。要具有较好的使用性,主要体现在查询时是否需要关联多张表和使用复杂的SQL语句。要从主键、数据类型、长度等来确保系统实体数据的完整性。基于以上的设计要求和对关系数据模式的分析,再综合考虑程序设计的安全性,我为系统创建了数据表有:用户表、菜单表、权限表、车道
42、类型表、角色表、车道表、角色权限表、收费站表、收费站类型表、车辆表、车辆类型表、车主表、身份证件类型表、驾驶证表、收费费率表、行车记录表、黑名单表、银行卡表、银行种类表等。具体表结构分别如下:(1) 用户表td_etc_user,用于记录用户登陆系统的基本信息,包括用户的登陆账号,登录密码,用户名,角色等信息(详见表4-4)。表4-4 用户表字段名类型长度主键外键可空说明user_tb_idbigint20是否是用户表id(自增)accountvarchar30否否是用户名passwordvarchar30否否是用户密码role_codevarchar2否是是用户角色(多对一)user_nam
43、evarchar30否否是用户真实名称password_statevarchar1否否是密码修改状态login_freeze_statevarchar1否否是账号冻结状态(2) 色表td_etc_role,为用户区分角色,包括角色编号,角色名称(详见表4-5)。表4-5 角色表字段名类型长度主键外键可空说明role_tb_idint20是否是角色表id(自增)role_codevarchar20否否是角色代码role_namevarchar20否否是角色名称(3) 车道类别表td_etc_road_type,是本系统的基础数据表,存放车道类型的基本信息,包括车道类别编号,车道类别名称等信息(详
44、见表4-6)。表4-6 车辆类别表字段名类型长度主键外键可空说明road_type_tb_idint20是否否车辆类别表id(自增)road_type_codevarchar2否否否车道类别编号road_type_namevarchar20否否否车道类别名称(4) 车道表td_etc_road,车道表用于记录ETC车道信息,包括车道名称、起止站点、收费站数量、车道长度、计划时速、使用状态、备注等(详见表4-7)。表4-7 车道信息表字段名类型长度主键外键可空说明road_type_tb_idint20是否否车道表id(自增)road_codevarchar15否是是车道编号road_namev
45、archar20否否是车道名称pass_station_codevarchar200否是是经过收费站编号pass_station_namevarchar200否否是经过收费站名称road_type_codevarchar1否是是车道类型road_total_distancefloat8否否是车道总长度road_start_codevarchar20否否是起始收费站编号road_start_namevarchar20否否是起始收费站名称road_end_codevarchar20否否是结束网站编号road_end_namevarchar20否否是结束收费站名称station_numberInt11否否是收费站数量min_speedInt11否否是行驶最小时速max_speedInt11否否是行驶最大时速working_stateVarchar1否否是使用状态dermarkVarchar300否否是备注(5) 菜单表td_etc_menu,存