网上订餐系统设计与实现论文本科学位论文.doc
长春工业大学硕士学位论文本科毕业论文(设计)(理工类)题 目: 网上订餐系统设计与实现 2长春师范学院本科毕业论文(设计)摘 要二十一世纪是信息化、知识化的世纪,随着社会的进步、计算机应用的快速发展和网络应用的不断扩大,并使传统的订餐形式得到了极大的扩充,使人们订餐更加的方便。基于Web的网上订餐系统,它是一种基于计算机网络的网上订餐形式,它的出现,大大地扩充了现行的订餐方式,使餐饮摆脱了空间上和时间上的束缚,不管谁,只要会上网,都可以坐在电脑前面,方便地进行网上订餐,可以看成是对餐饮业的一次革命。通过网上订餐系统,可以在家中或办公室为自己订一份既营养又实惠的美食。本文就是基于此目的实现一个网上购餐系统。本系统是用户实现网络交易的一种方式。设计和实现了一个B/S结构的网上订餐系统,重点论述了系统的功能与实现、数据流程及存储。包括会员管理、餐品信息介绍、网上订餐、用户留言、系统用户管理以及后台数据库管理等。本文先是对系统的需求分析做了详细的介绍,然后对系统的概要设计进行了阐述并重点介绍了网上订餐系统各功能模块的具体设计和实现。本系统是在MySQL数据库、Java语言和MyEclipse平台技术实现的。既拥有良好便捷的前台操作界面,也有稳定的后台支持。系统旨在提供一个可供操作、功能完全、特色突出的网上订餐系统。关键词:网上订餐系统 JAVA MySQL SSH2 21长春师范学院本科毕业论文(设计)AbstractTwenty-first century is a informational knowledgeable century. With the rapid development of society, the use of the computer application and the network application, the traditional order form of meals has been greatly expanded, making life more convenient. Online meal ordering system based on Web is such a computer network based on the online meal ordering form which has greatly expanded the existing order way. No matter who, as long as with the Internet, can sit in front of the computer, ordering a meal conveniently online. It is a kind of revolution of daily life. Online meal ordering system can be used in the home or office to buy a nutrition and affordable food for someone .Based on this,this article implements an online meal system.The system is the user a way for network transactions. the on-line meal ordering system of the B/S structure is designed and implemented, it emphatically elaborates the function and implementation of system, data flow and storage such as the member management, information introduction of order, the on-line meal ordering, user information, system user management as well as the administration of backstage database. This article analyzes the system requirements, and makes a detailed introduction, and then highlighted the design and implementation of the online meal-order system. The system is implied by MySQL database, Java language and MyEclipse . It not only has good prospects of friendly interface, and also a stable background support. The system is designed to provide an operable, fully functional, feature prominent system for online meal ordering.Key Words: Online ordering system JAVA MySQL SSH2长春师范学院本科毕业论文(设计)目 录承诺保证书I摘 要IIABSTRACTIII第一章 绪 论11.1 本课题的来源及研究意义11.1.1 本课题的来源11.1.2 课题的研究意义21.2 订餐系统概述21.2.1 订餐系统的发展历史2第二章 相关开发技术32.1 J2EE设计平台32.2 MYSQL32.2.1 MYSQL简介32.2.2 MYSQL优势32.3 STRUTS242.3.1 STRUTS2简介42.3.2 STRUTS2框架结构42.4 SPRING42.4.1 SPRING简介42.4.2 SRING核心机制52.5 HIBERNATE52.5.1 HIBERNATE简介52.5.2 HIBERNATE核心接口5第三章 需求分析63.1 网上订餐需求分析63.1.1 功能需求分析63.2 系统架构分析73.3 可行性分析7第四章 系统设计84.1 系统设计目标84.1.1 系统安全性84.1.2 可维护性84.1.3 用户操作84.1.4 运行速度84.1.5 界面84.2 用户类别功能设计94.2.1 订餐用户功能94.2.2 餐馆管理员功能94.3 总体设计104.3.1 用户登录104.3.2 订餐服务114.3.3 订餐处理114.4 数据库设计124.4.1 数据库设计概述124.4.5 数据库模型15第五章 系统实现165.1 登陆和注册165.2 菜单信息浏览165.3 订餐服务175.4 用户反馈175.5 订单处理175.6 餐馆信息管理185.7 程序相关18结 论19参考文献20致 谢21长春师范学院本科毕业论文(设计)第一章 绪 论网上订餐就是互联网的深入应用。用户通过互联网,能足不出户,轻松闲逸地实现自己订购餐饮和食品(包括饭、菜、盒饭、便当等)的一种网络订餐形式。随着食天下网上订餐平台的兴起,网上订餐已经逐渐成为了白领阶层中的一种潮流了。网上订餐一般都会集中在一个时段,这会给餐饮企业制造出订餐的高峰时段,订餐者的需求在很多时候会得不到满足,这种不如意,诞生的总是网上订餐“无保障”,“线上看,线下订”正好能帮助改变这种会衍生恶性循环的效应;通过线下电话联系和沟通,订餐者会对送餐时间能适当把控,这样也就心里有数,在这样的情况下,餐饮企业和用餐者在口头协商的前提下,能达成一种双方都能接受的协议,网上订餐用户一般都不会产生不满情绪,这能抵消消费者的不满情绪。想实现网上订购,这些网上订餐的形式应该很难,其中原因主要就是餐饮行业普遍存在的信息化意识薄弱,这让网上订餐成为实在的瓶颈,短时期内这是很难突破的,这也是为什么现在真正能实现网上订餐、并能被广泛接纳的网上订餐行为,依然离不开电话直接订购的主要原因。网上订餐,想正真实现“网上订,网上付”的正规化,还需要很长的一段时日。1.1 本课题的来源及研究意义1.1.1 本课题的来源随着网络技术的发展和普及,Internet已成为人们获取有关信息和相互交流的重要途径之一,越来越多的机构和组织开始利用网络资源传递、发布、收集和管理信息。这对各种类型的网络提供一次很大的机遇与挑战,特别是通过网络进行信息交互的这种活动,更使网络的经营方式充满了活力和机动性1。基于B/S模式的JAVA网上订餐系统是应用于网络交流领域的系统,它的主要特点有:(1) 通用性:网上订餐系统具有良好的界面,适合推广给所有用户,能够给用户提供良好的服务。(2) 便捷性:本系统最大的特点就是方便快捷,用户使用本系统可以足不出户就享受到优质服务,在现代人们的生活中很适用。人们对于订餐的要求是能够减少排队等待的时间,此系统的设计正是为了迎合大家的这种需求,可以让用户节约许多的时间,提高了生活效率2。1.1.2 课题的研究意义网上订餐系统为人们的生活提供了方便快捷的消费方式:1.顾客去餐厅消费不用需要排队点餐,可以方便的打开我们的网站,选择自己喜欢的餐厅,浏览餐厅的菜单,进行网上点餐,省去了很多的时间。2.对于餐厅,可以扩大自己的销售领域,通过我们的网站可以很好的做广告。每个餐厅有它自己的主页,管理自己的主页;餐厅不仅仅在某个商业小区经营,餐厅还可以给顾客提供送外卖服务,这样就大大地方便了那些宅男宅女们,不用再买那些快餐似的垃圾食品,还能很好地享受到可口的饭菜。通过这种方式,餐厅的营业范围将大大地提高,营业额必然会上升。本系统针对所有用户群体,建立了客户端及服务器端。主要解决的问题包括:(1) 对于使用界面,需要人性化,能够给用户一种温馨与简易的感觉;(2) 系统应能够及时响应用户的请求,并及时提供帮助。本系统开发的意义在提供给用户方便快速的订餐服务,满足用户的需要,解决传统订餐方式的不足。1.2 订餐系统概述1.2.1 订餐系统的发展历史随着互联网用户的增多,工作节奏的加快,网络订餐成为众多年轻网民及白领人士生活中的一部分。大众点评网、豆丁网等网站的成立,为众多办公楼、工作繁忙的白领解决了吃饭问题。网络订餐的手段和方式分类,目前餐饮业主要通过以下三种方法开展:1通过餐饮网站订餐。这种订餐方式主要通过专门的网站实现订餐,用户通过网络实现对餐馆的查询及餐馆的菜谱查询和预定服务,相应企业给予通过网站订餐的顾客相应的优惠。2通过及时的通讯工具(QQ,MSN等)的网络订餐。这种餐饮企业往往不具备建立网站订餐系统的资金与技术实力,主要通过及时的通讯工具(QQ,MSN等)的实现订餐。这种餐饮企业往往是区域性的,主要分布在居民小区及学校周边,规模一般较小。3通过电子邮件的网络订餐。这种订餐方式主要是在相应餐饮企业举办大型酒席时,顾客提供给餐饮企业餐单时使用。因为使用邮件订餐有时间差,而且要收发邮件略显麻烦,所以目前较少使用。综上,第一类订餐方式使用最为广泛,网站建立较容易 成本低,但对于传统店面餐饮收效甚微,无法成为主要的利润来源。其余两类有网络订餐的实质,但仅作为目前网络订餐的辅助手段3,4。第二章 相关开发技术2.1 J2EE设计平台J2EE Java2平台企业版(Java 2 Platform,Enterprise Edition)是一套全然不同于传统应用开发的技术架构,它包含许多组件,主要可以简化并且规范应用系统的开发及部署,进而提高可移植性、安全与再用价值5。 目前,Java 2平台它有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME)、适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。J2EE它是一种利用Java 2平台来简化企业的解决方案的开发、部署和管理等相关的复杂问题的体系结构。J2EE技术的基础是核心的Java平台或Java 2平台的标准版,J2EE它不仅巩固标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库的JDBC API、CORBA技术及能够在Internet应用中保护数据的安全模式等等,同时提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构6。2.2 MySql2.2.1 MySql简介MySQL它是一个小型关系型数据库管理系统,MySQL它还是一种关联数据库管理的系统,关联数据库将数据保存于不同的表中,而不是将所有数据内容放在一个大仓库内。这样就提高了速度和灵活性。MySQL的是SQL“结构化查询语言”。SQL它是用于访问数据库中的最常用标准化语言。MySQL软件采用了GPL(GNU通用公共许可证)。由于它体积小、速度快、总体拥有成本低,特别是开放源码这一特点,许多中小型网站为了降低网站总体成本就选择了MySQL作为网站数据库7,8。2.2.2 MySql优势(1)它是使用C和C+编写,并使用了众多的编译器进行测试,保证了源代码的可移植性;(2)支持AIX、HP-UX、NovellNetware、Linux、Mac OS、OpenBSD、Solaris、Windows、FreeBSD OS/2 Wrap等多种操作系统;(3)为多种编程语言都提供了API。这些编程语言包括C、C+、Java、Perl、PHP、Ruby、和Tcl Eiffel等;(4)既能作一个单独的应用程序应用在客户端服务器网络环境中,还能作为一个库而嵌入到其他的软件中提供多种语言支持,常见的编码如中文的GBK、BIG5,日文种的Shift、JIS以用作数据表名和数据列名;(5)提供了TCP/IP、ODBC和JDBC等许多种数据库连接方法;(6)它还提供了用于管理、检查、优化数据库的操作的管理工具;(7)可以处理有上千万条记录的大型数据库9。2.3 struts22.3.1 struts2简介Struts 2它是Struts的下一代产品,是融合了struts 1和WebWork的技术,在它们基础上合并的全新的框架。其全新的Struts 2的体系结构与Struts 1的体系结构有着巨大差别。Struts 2它是以WebWork为核心,采用了拦截器机制来处理用户的请求,这样的设计让业务逻辑控制器能够与Servlet API完全脱离,因此Struts 2可以理解成WebWork的更新产品。虽然从Struts 1到Struts 2有着根本性的变化,但是相对于WebWork,Struts 2它的变化还是很小10。2.3.2 struts2框架结构当Web容器收到 请求(HttpServletRequest)后,它将请求传递给一个标准的过滤链包括(ActionContextCleanUp)过滤器,然后经过Other filters(SiteMesh ,etc),再然后需要调用FilterDispatcher这个核心控制器,然后它再调用ActionMapper确定请求来自哪个Action,ActionMapper返回一个收集Action详细信息的ActionMaping的对象。接下来FilterDispatcher它将控制权派给ActionProxy,ActionProxy调用配置管理器(ConfigurationManager) 从配置文件中读取配置信息文件(struts.xml),然后创建ActionInvocation对象,ActionInvocation在调用Action之前它会依次的调用所用配置的拦截器(Interceptor N) 一旦执行结果后返回结果字符串ActionInvocation负责查找结果字符串对应的结果集(Result)然后执行这个Result。 Result会调用一些模版(JSP)来表页面,随后拦截器(Interceptor N)会被执行(顺序和Action执行之前相反)最后响应(HttpServletResponse)它会被返回在web.xml中配置的那些过滤器和核心控制器(FilterDispatcher)中11,12。2.4 spring2.4.1 spring简介它是为了解决企业应用程序开发的复杂性而由Rod Johnson创建的。框架的主要好处之一就是它的分层架构,分层架构可以允许使用者选择使用哪一个组件,同时并为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成从前只可能是由EJB来完成的事情。但Spring的用途不仅局限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java的应用都可以从Spring中受益颇多13。2.4.2 sring核心机制控制反转模式(依赖性注入)的基本概念是:不为创建对象,但是描述创建它的方式。在代码中不直接和对象和服务连接,而是在配置文件中来描述哪一个组件它需要哪一项服务。容器 (在 Spring 框架中是 IOC 容器) 它是负责将其联系在一起。在典型的 IOC 场景中,是容器创建了所有对象,并且设置必要的属性来将它们连接在一起,决定什么时间去调用方法14。2.5 hibernate2.5.1 hibernate简介Hibernate它是一个开放源代码的对象关系映射框架,它是对JDBC进行了非常轻量级的对象封装,使Java程序员能够随心所欲的使用对象编程思维来操纵数据库。 Hibernate它可以应用在任何使用JDBC的场合,既能够在Java的客户端程序使用,也能够在Servlet/JSP的Web应用中使用,最有意义的是,Hibernate它能够在应用EJB的J2EE架构中取代CMP,来完成数据持久化的重任15。2.5.2 hibernate核心接口Session接口它是负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了许多常见的SQL语句)。但是,需要注意的是Session对象是非线程安全的。并且Hibernate中的session不同于JSP应用中的HttpSession16。这里当使用session这个术语时,其实指的是Hibernate中的session,在以后会将HttpSession对象称为用户session。SessionFactory接口它是负责初始化Hibernate的。它既可以充当数据存储源的代理,还负责创建Session对象。在这里还用到工厂模式。但需要注意的是SessionFactory它并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,但是当需要操作多个数据库时,可以为每个数据库都指定一个SessionFactory。Configuration类它是负责配置并启动Hibernate的,创建SessionFactory对象的。在Hibernate的启动过程中,Configuration类的实例它先定位映射文档位置、读取配置,然后创建SessionFactory这个对象17。Transaction接口它是负责事务的相关操作。它是可选的,同时开发人员也可以设计编写自己的底层事务处理代码18。第三章 需求分析3.1 网上订餐需求分析3.1.1 功能需求分析本系统主要是实现网上浏览菜单、订餐、产生订单等功能的系统。需要实现菜品信息的提示、购物车管理、客户信息注册、登录管理、订单处理和信息反馈等内容。需要完成的主要任务如下:当客户进入网上订餐时,应该在订餐页面中显示相应的菜品信息,来供客户去选择所需要的菜品,同时还提供按菜品名称,快速查询所需要菜品信息的功能。当客户选择预定某个菜品时,应该能够将对应菜品信息,如:价格、数量记录到对应的购物车中,此时客户可以选择选择其他菜品或是查看自己的购物车,最后,在购物车中填下相应的送餐信息,提交订餐的订单后,自动清除以生成订单的购物车中的信息。餐厅服务人员根据订单信息,查看详细订单明细并根据实际情况处理订餐。分析网上订餐系统,制订整个系统框架如图3-1:图3-1系统整体框架图目前,用于需求建模的方法有很多,最常见的是包括数据流图(DFD)、实体关系图(ERD)和UML三种方式。UML(统一建模语言)是一种建模语言,它的特点是良好的定义、表达能力突出、具有多重功能。软件工程中的一些方法和技术也都应用在其中。从软件需求分析开始就有了很多的应用,并且贯穿始终。本系统使用UML中的用例图、活动图、状态图来对需求建模。代码的编写是以最终的类图和对类图的补充说明文档为基础的。通常都是先画用例图和分析用例。然后把用例图中的actor去除,其余的名词中的大多就是类了,再根据具体情况斟酌就可以画类图。类图并非一下子画完的,可以在一开始先画出一些必要的成员变量和成员函数,再分析业务逻辑,并且可以开始画状态图、活动图和协作图、顺序图,在画这些图的时候对业务逻辑就会有更多的认识。但这时也会发现类图中的一些漏洞,然后再去补充类图。3.2 系统架构分析 本网上订餐系统采用了B/S架构的设计体系,B/S结构相对于传统的C/S结构,它的这种结构能使得数据只有结果集在浏览器中显示,数据的处理在服务器中进行,然后用户就不用安装客户端了,而且因为通过服务器端统一管理数据,很大程度降低了开发WEB应用的难度;易于保证数据的一致性。B/S模式的三层模型:第一层表示层。用户接口部分它就是数据的表示层,会把用户和系统连接起来传递信息。它能够实现对输入的数据进行检查和对外输出的数据的功能,以便显示出来。当某个Web浏览器需要获取资源,对一个服务器要申请服务时,服务器会在验证了用户信息以后,把所需的文件资料都传送给客户端,其采用的是HTTP协议传送,文件资料就能够被用户接收了并且可以显示在浏览器上。第二层事务逻辑层。事务逻辑层是应用的主体,它也可以被叫做功能层,业务处理程序基本上都是在这一层中。统计、汇总、分析、打印功能等等这些功能都是在功能层。申请的方式是通过SQL向数据库来进行操作,根据具体的需求和用户的特殊要求,来链接程序使用数据库中的数据,处理之后的数据会从数据服务器转到web上的服务器,最后客户端从web服务器上得到数据。第三层数据库层。数据库层是由两部分组成,一部分是数据库管理系统,另一部分是数据库,各个部分独自处理它的任务,任务是它对数据库进行处理,对数据库的操作,例如增删改查等,web服务器能够获取最后的结果。负责管理其数据库的事数据库管理系统,提供给应用程序各种各样的服务,数据库管理系统处在数据库服务器端18。3.3 可行性分析随着中国人民的物质、精神和文化水平的不断提高,人们已不再仅是停留在吃饱的程度,而是不但要吃饱,更要吃好,并且越来越挑刺。正是基于此目的,网上订餐业务的出现,迎合了这些人的需求,他们不但省去了自己做饭的麻烦,还能寻找和发现新的菜品,品尝不同风格及不同种类的菜品。网上订餐业务在中国有着良好的发展空间和不错的发展前景。综上,我们决定利用JAVA和MySQL来设计网上订餐系统。JAVA可以创建与运用动态、交互的WEB服务器应用程序。MySQL是一个杰出的数据库平台,具有功能强大,安全可靠等特点,可用于大型联机事务处理、数据仓库及电子商务等19。第四章 系统设计4.1 系统设计目标4.1.1 系统安全性对于不同的用户有着不同的权限,系统对于他们有良好的区分。同时保证了数据的安全性。可靠准确的数据、可恢复性的系统都是必须的。4.1.2 可维护性在使用系统的过程中,会碰到很多新的要求,有时候还要对新的内容进行扩充,因此在设计系统时一定要考虑到,设计出来的系统是否能满足实际的应用,并能随时添加新的功能。管理员会不定时对系统进行更新,如新功能的开发和数据的维护等。4.1.3 用户操作设计的目标中应该有能够使用户使用方便,操作简洁明了,这样才能更好让系统发挥其的作用。本系统中对用户有着很明确的操作指示,我们可以在网页中浏览系统并为用户提供给的任何服务,例如查看菜品信息,个人信息,密码修改以及个人发表的信息等。4.1.4 运行速度系统响应时间对于系统是至关重要。想到每位用户都不喜欢传统订餐方式等待的长远时间,后台会不断提高系统的运行速度,来争取在第一时间满足用户的订餐需求。对于管理员,需要注意的是在提高响应时间的时候,务必不能忘记系统的安全性。系统的速度,主要与浏览器与服务器之间的网络通信速度以及服务器在处理事务时的运行速度。对此,应该选择网络连接更加快速,子链接较少的优质线路对服务器线路进行铺设,其次是在编程过程中减少对数据库的访问,加快访问速度,事务处理逻辑更加合理化,减少不必要的计算冗余。4.1.5 界面人和机器的互动过程(Human Machine Interaction)中,有一个层面,即我们所说的界面(interface)。用户界面设计是屏幕产品的重要组成部分。界面设计是一个复杂的有不同学科参与的工程,认知心理学、设计学、语言学等在此都扮演着重要的角色。用户界面是用户与程序沟通的唯一途径,要能为用户提供方便有效的服务。用户界面设计的三大原则是:置界面于用户的控制之下、减少用户的记忆负担、保持界面的一致性。详细说来有以下几点。1.简易性界面的简洁是要让用户便于使用、便于了解、并能减少用户发生错误选择的可能性。2.用户语言界面中要使用能反应用户本身的语言,而不是游戏设计者的语言。3.记忆负担最小化人脑不是电脑,在设计界面时必须要考虑人类大脑处理信息的限度。人类的短期记忆极不稳定、有限,24小时内存在25的遗忘率。所以对用户来说,浏览信息要比记忆更容易。4.一致性是每一个优秀界面都具备的特点。界面的结构必须清晰且一致,风格必须与游戏内容相一致。5.清楚在视觉效果上便于理解和使用。4.2 用户类别功能设计4.2.1 订餐用户功能图4-1 订餐用户功能图4.2.2 餐馆管理员功能图4-2 餐馆管理员功能图4.3 总体设计4.3.1 用户登录图4-3 用户登录流程图用户登录实现为本网站注册用户提供身份确认的功能,保证合法用户的应有权益。而且是否登录也将决定用户能否订餐。用户登录的前置条件是在登录前,用户必须完成“注册”。流程如下:进入网站首页之后,会看到一个登陆页面,只有在注册之后才能使用本系统,注册之后,后台会收到相关信息,只有用户名和密码正确才能登陆成功。4.3.2 订餐服务图4-4 订餐服务流程图在订餐服务用例中,每个用户都有个购物车,用户可以将自己选定的菜品及其数量放入到购物车中,并且随时可以查看自己预定的菜品的数量和总价格。本用例开始前用户必须登录到系统中。如果用例成功,顾客可以浏览自己购物车中的信息并决定是购买还是删除。4.3.3 订餐处理图4-5 订单处理流程图当用户提交已订的菜单或想取消已订的菜单时,都会在前台自动生成;处理订单的过程是订餐管理人员参与的,当前台有新的订单生成时,会自动在后台的现有订单列表中显示出来,订餐管理人员可以点击查看未处理的订单,根据实际情况进行处理,或者删除不需要的订单记录。具体流程如下:对于用户,在生成订单之前,可以随意浏览菜单信息,并选择是否订购及提交之前是否删除;对于管理员,可以查看用户生成的订单信息,并在确认用户收到所订购的菜之后,有权删除该用户的订单。之前已经完成需求分析,现在需要进行概念设计、逻辑设计和物理设计,本章将叙述这三个阶段的设计思路和设计过程。4.4 数据库设计4.4.1 数据库设计概述概要设计的主要任务是把需求分析得到的DFD转换为数据和软件结构。软件结构在设计时需要完成的任务是:把按功能的不同模块划分、确立层次结构及相互调用、接口与人机间的联系。数据的结构特性的确定、数据特征的全部描述和数据库的详细设计。显然,经过概要设计之后,就建立了一个系统的逻辑模型,该模型不受具体的计算机影响20。4.4.2 数据库表的设计数据库的主要表详细结构如下:表4-1用户表:user字段名类型说明useridInt(11)用户iduemailVarchar(32)用户邮箱UnameVarchar(32)用户名UpswdVarhar(32)用户密码UphoneInt(11)用户电话isConfirmTinyint(4)系统管理员权限表4-2 餐馆表:restaurant字段名类型说明RidInt(11)餐馆idRpswdVarchar(32)餐馆登陆密码RseatVarchar(128)餐馆地址RitemVarhar(128)餐馆特色RphoneVarchar(32)餐馆电话RstartmoneyFloat(8)起送金额RsendmoneyFloat(8)送餐金额Rstatuetinyint(4)餐馆状态RstyleTinyint(4)餐馆类型RnameChar(128)餐馆名称表4-3菜系表:cookstyle字段名类型说明csidInt(11)菜系idRidInt(11)关联餐馆DnameVarchar(128)菜系名称表4-4菜品表:dishes字段名类型说明didInt(11)菜品idRidInt(11)关联餐馆DnameVarchar(128)菜品名称DmoneyFloat(8)菜品价格CsidInt(11)关联菜系表表4-5评价表:discuss字段名类型说明DisidInt(11)评价idRidInt(11)关联餐馆UseridInt(11)关联用户表DiscontentText评论内容TastenumberTinyint口味得分ServicenumberTinyint服务得分SpicenumberTinyint速度得分DistimeDatetime评论时间表4-6回复评论表:redis字段名类型说明RedisidInt(11)回复评论idDisidInt(11)关联评论表RediscontentText回复评论内容表4-7公告表:notice字段名类型说明NidInt(11)公告idTitleChar(128)标题NcontentText公告内容NtimeDatetime发布时间表4-8送餐时间表:sendtime字段名类型说明SidInt(11)送餐时间idRidInt(11)关联餐馆SstartTime送餐起始时间SsendTime送餐结束时间表4-9订餐时间表:pretime字段名类型说明pidInt(11)订餐时间idRidInt(11)关联餐馆pstartTime订餐起始时间psendTime订餐结束时间表4-10订单表:orderform字段名类型说明oridInt(11)订单idUseridInt(11)关联用户OrtimeTime下单时间OrstatueTinyint订单状态FormChar(129)订过的餐厅表4-11订餐者信息表:tb字段名类型说明TbidInt(11)信息idTbnameVarchar订餐者姓名TbtelVarchar订餐者电话TbaddressVarchar送餐地址MytimeSmallint是否定时送餐DdltimeVarchar送餐时间TbremarkText订餐者备注OridInt关联订单表表4-12订单项表:formitem字段名类型说明FidInt(11)订单项idDidInt(11)关联菜品表OridInt(11)关联订单4.4.5 数据库模型数据库各表关联关系图4-6所示:图4-6 数据库模型图第五章 系统实现5.1 登陆和注册首页为url为“/index”,处理方法为IndexAction中Index(),如图5-1所示:图5-1 网站首页展示图非登录用户在网站之内浏览饭店以及饭店菜品信息,但还无法订餐网上订餐服务只有登陆以后才能进行,这样确保了订餐服务的有效性,避免预定后,不履行订单的恶意行为。5.2 菜单信息浏览在菜单信息中,可以直接浏览到全部的菜单信息,信息包括了:菜名,价格等。在该网页上也可以查看菜品的详细信息。如图5-2所示:图5-2 订餐界面图当用户点击订购 若还没有登录,则跳转到登陆页面,若已登录。在右侧会有小购物车提示用户,如图5-3所示:图5-3 购物篮图 (此购物车在未登录状态时是不显示的)点击确认可以进入购物车进行订单的最后处理 ,点击清除,可以消除已经订购的菜品5.3 订餐服务当用户进行订餐时,系统为用户生成了一个虚拟的购物车,在用户浏览详细的菜单信息时,将此菜品放入购物车中。在订餐过程中,用户可以查看自己购物车中选购的菜品和金额,根据自己的需要可以清空购物车中的菜品,还可以选择继续订餐,在查看购物车时填入相关送餐信息,点击“提交订单”,完成了整个订餐流程。5.4 用户反馈用户可以给饭店进行评论和评分,如图5-4所示