毕业论文 - 计算机专业.doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date毕业论文 - 计算机专业毕业论文 - 计算机专业. 本科生毕业设计(论文)论文题目 基于web的在线餐饮网站的设计与实现作者姓名 000专 业 计算机科学与技术指导教师 0002017年6月-燕山大学本科生毕业设计(论文)基于web的在线餐饮网站的设计与实现学院:信息科学与工程学院专业:计算机科学与技术姓名:000学号:000指导教师:000答辩日期:2017年6月燕山大学毕业设计(论文)任务书学院:信息科学与工程学院 专业(方向):计算机科学与技术学号000学生姓名000专业班级计算机科学与技术五班题目题目名称基于web的在线餐饮网站的设计与实现题目性质1.理工类:工程设计 ( );工程技术实验研究型( );理论研究型( );计算机软件型( );综合型( )。2.文管类( );3.外语类( );4.艺术类( )。题目类型1.毕业设计( ) 2.论文( )题目来源科研课题( ) 生产实际( ) 自选题目( ) 主要内容1、 实时更新功能2、 餐位推荐及食客分配功能3、 网上支付功能4、 网上点评功能5、 登录功能和订餐功能基本要求1. 在Windows10应用环境下,实验及模型建立程序采用Java+MySQL编写,模型展示平台采用JSP+MySQL编写。2. 实现各种功能,保证网站的正常运行,实现不需要人管理的网上管理系统,实现对餐厅的全方位管理。3. 使顾客有更好的用餐体验 参考资料1孙卫琴.Tomcat与Java Web开发技术详解北京:电子工业出版社,20042赛奎春. JSP信息系统开发案例精选. 北京:机械工业出版社,2006.3李宁.Java Web编程实战宝典.清华大学出版社,2014. 周次14周58周912周1316周17周应完成的内容进行需求分析,数据库设计。完成系统的概要设计和详细设计。系统具体实现,包括编码与测试。进一步调试和完善系统。撰写并进一步完成论文和答辩。指导教师:000职称:讲师 2017年2月28日注:周次完成内容请指导老师根据课题内容自主合理安排。摘 要随着数字化和信息化的日益发展,网络在人们生活的中的比重越来越大,衣食住行是人们的生活方式,而食物正是人们每日的必需品,随着人们生活水平的提高,越来越多的餐厅开始出现,餐饮行业是一个永不凋零的行业,如何使顾客更加方便的品尝美味的食物这一需求促使网上餐饮管理系统出现,而网络的及时和准确的信息传递也正是迎合了餐饮网站的出现,同时越来越多的订餐网站和手机APP涌现而出,因此开发一个好的餐饮网站必将是能够运用到实际中的项目。本文对餐饮管理系统网站的开发从需求分析到最后的编码测试进行了详细的阐述,主要采用JSP+Servlet+MySQL进行开发,在过程中遇到了许多问题,同时对软件工程的重要性有了更深刻的认识,是对餐饮管理系统网站开发的一次尝试,同时在开发过程中进行学习和实践,收获了许多知识和对编程的理解。关键词:餐饮;开发;管理系统;网站AbstractWith the development of digital and information technology, the proportion of network in people's life is more and more big, basic necessities of life are people's way of life, and food is the daily necessity of the people. With the improvement of people's living standard, more and more restaurants are beginning to appear, the catering industry is an industry that will never wither. How to make customers more convenient to taste delicious food, this demand prompted the emergence of online catering management system, and the timely and accurate information transmission of the network also caters to the emergence of catering websites, meanwhile, more and more ordering websites and mobile phone APP are emerging. Therefore, the development of a good catering website is bound to be applied to the actual project.In this paper, the restaurant management system website development, from the demand analysis to the final coding, testing are described in detail, JSP+Servlet+MySQL is mainly used for development. Encountered many problems in the process, but at the same time, I have a deeper understanding of the importance of software engineering, It is an attempt to develop the website of restaurant management system. At the same time, in the development process of learning and practice, I gained a lot of knowledge and understanding of programming.Keywords: Catering; Development; Management System; Website目 录摘 要IAbstractIII目 录V第1章 绪 论11.1 选题的背景11.2 目的和意义11.3 国内外文献综述21.4 主要研究内容2第2章 系统实现技术52.1 JAVA WEB技术52.1.1 使用工具52.1.2 主要内容52.2 SERVLET技术62.3 访问数据库62.3.1 开发工具62.3.2 语言简介72.4 MVC模式72.5 本章小结7第3章 需求分析93.1 可行性分析93.1.1 技术可行性93.1.2 经济可行性93.1.3 操作可行性93.2 项目内容93.3 实体-联系图103.3.1 数据对象103.3.2 联系103.4 本章小结11第4章 数据库表设计124.1 数据库表134.2 数据库表中的数据项134.2.1 顾客表134.2.2 餐品表134.2.3 餐位表144.2.4 评价表144.2.5 厨师表144.2.6 服务员表144.2.7 订单表144.2.8 历史记录表154.2.9 管理员表154.3 数据库表设计154.4 本章小结18第5章 总体设计185.1 选择设计方案195.2 设计原理分析195.3 功能层次图205.4 功能详解215.5 本章小结23第6章 详细设计246.1 程序流程图设计256.1.1 前台程序流程图256.1.2 后台程序流程图256.2 页面设计266.2.1 登录界面266.2.2 主页界面276.2.3 餐品预定界面276.2.4 餐位预定界面286.2.5 个人中心界面286.2.6 餐品详情界面296.2.7 后台登录界面306.2.8 后台主页界面306.3 小结31第7章 编码设计327.1 基本Java类337.2 方法类337.3 处理SERVLET347.4 本章小结35第8章 系统测试368.1 登录测试378.2 注册测试378.3 预定餐品测试378.4 预定餐位测试388.5 个人中心测试388.6 后台功能测试388.7 小结39结 论40参考文献42附录1 开题报告44附录2 文献综述46附录3 中期报告48附录4 外文原文52附录5 外文翻译58致 谢62第1章 绪 论1.1 选题的背景随着计算机网络的发展,互联网已经成为当今时代必不可少的工具,人们之间的信息交流变得简单便捷,信息高效迅速的特性不断推动着社会的发展,小到人与人之间的聊天沟通,大到商业、学术交流等各个领域的信息交流,社会发展离不开信息的碰撞,而信息化的发展也离不开互联网的发展。因此,计算机网络技术也不断地开拓创新,互联网不断地升级优化,为满足人们的需求不断地进行网站的开发和开发技术的发展。餐饮类网站也逐渐兴起,如今各式各样的餐饮企业和餐厅依托着网络的信息处理的快速、高效和时代的特性,通过外卖网站,点餐APP等在线网站和手机APP不断地提升着服务水平和质量,而随着生活节奏的加快,广大的消费者也越来越倾向于通过网络进行便捷的消费,如何设计出更加人性化的餐饮网站,以及如何设计功能更加强大和更加全面的后台系统都是需要实际考虑和有待提高的方向。同样是餐饮行业,当前的订餐网站越来越多,人们出行用餐改为了送餐到户,对于足不出户的用餐开始受到人们的青睐,但是餐厅的用餐不仅是多了出行的麻烦,而是减少了人与人的社交文化,改变了人们的生活方式,在这个互联网流行的时代如何设计和开发符合餐厅特色的餐饮网站是使餐饮餐厅追上时代的潮流的关键。1.2 目的和意义通过上述分析,进行餐饮类的网站开发是一个具有实际意义的项目。本系统不仅仅是对顾客可以使用的,也是对餐厅管理人员可以使用的,不仅可以使顾客订餐变得更加方便,也是餐厅的管理人员对餐厅的管理更加直观和方便,用户可以方便的订餐,查看餐品和餐位信息,用餐之后的感受可以通过对相应的餐品或服务员的评论进行反馈,而餐厅的管理者可以登录到后台系统对餐厅的人员和餐品等的信息进行管理,通过查询订单生成纸质订单进行订单的处理,而员工的服务质量也可以通过相应的好评、差评进行反应,系统对信息的自动处理是管理人员省去了很对繁重的工作。现在网上订餐系统颇多,也很流行,但是餐厅的管理系统却很少,本系统结合订餐和管理两大功能,有着更加完善的系统功能,对于在线餐饮行业的发展有着很好地促进作用。1.3 国内外文献综述在线餐饮系统属于开发较早的系统,因为国内外普遍存在的餐饮行业,该系统的研究和应用发展很快,早先,国外的餐饮系统更是发展迅速,但是随着中国的发展,人们生活水平的提高,越来越多的餐饮行业出现,在线餐饮网站也是因此在中国开始发展,同时借鉴或者使用外国的在线餐饮系统,在中国,餐饮在线系统越来越普遍,该系统的研究也越来越成熟。现在中国地网上订餐网站也颇多,如饿了么、美餐网、外卖单、小组饭等等,网上的食物网站越来越多。但是网上订餐企业的业绩并不理想,尚未发现很火爆的网上订餐企业。目前国内外的网上餐厅网站大部分也是关于订餐、订座之类的,无法实现智能化的无人管理,但是随着网上餐厅系统的发展,各式各样的网站的开发,网站的功能也会越来越全面随着餐厅的发展,网上餐厅系统功能也越来越多,餐厅预购、团购、优惠券、积分换礼、特色活动等等各种功能层出不穷,而食物分类更是数不胜数,网上餐厅越来越便利实惠。网上的订餐系统的实地订餐、电话订餐也大大的节省了食客的时间,提供了方便的服务,网络订餐可充通过色彩、图片、说明、设置动画加强了产品了宣传,大大达到了餐饮业的“色型”要求1。实现产品管理方便,起到立竿见影的效果,不用因为更改菜色而重新印刷,同时网上展示的食物图片和介绍也给了食客更直观的印象和喜好。1.4 主要研究内容对于餐饮管理网站,通过进行功能分类,主要分为前台功能和后台功能,前台功能主页分为两个部分,一部分是前台,一部分是用户个人中心。前台的主要功能为:1. 登录功能:通过对用户输入的用户名和密码的正确性检测实现登录,保存用户登录信息。2. 注册功能:通过输入注册信息,如用户名、密码、电话号码,以及对用户名是否存在的检测、密码和再次输入密码是否一致的检测而确定是否能够注册成功,并将注册信息保存到数据库2。3. 首页:实现向不同功能模块的跳转。4. 餐品预定:显示所有餐品,可以按不同条件进行分类查询,可以通过点击餐品进入餐品详情页面显示餐品的详细描述(包括用户的评论),也可以通过点击预定按钮进行餐品预定。5. 餐位预订:显示所有餐位和推荐餐位,通过选择不同的时间段查看相应时间可预订的餐位(即空餐位)。用户中心主要功能为:1. 个人信息模块:分为查看个人信息功能和修改个人信息功能3。2. 订单模块:分为查看订单、添加订单、删除订单和查看历史订单功能。查看订单可以查看已经提交但是没有过期的订单;添加订单可以添加新订单,只有点击添加订单之后才可以添加餐品和餐位,最后提交可以将订单真正提交;删除订单可以将已经预定的订单取消;查看历史订单即查看过期订单。3. 用户等级模块:查看个人等级和提升个人等级功能。4. 评论模块:实现对餐品评论,对服务员的满意程度和厨师满意程度进行评价。以上是用户可以操作的内容的,即前台功能,而对于用户信息、餐品信息、餐位信息和员工信息的管理都属于后台功能:1. 餐品管理:查看所有餐品的信息,实现对餐品信息的删除和修改4。2. 餐位管理:查看所有餐位的信息,实现对所有餐位信息的修改和删除。3. 员工管理:查看所有员工(包括服务员和厨师)的信息,实现对所有员工信息的修改和删除。第2章 系统实现技术2.1 JAVA WEB技术Java web是用于解决Web领域的Java技术总和,本次Java Web技术使用的工具有Myeclipse和Tomcat,下面对这两个工具进行简单的介绍。2.1.1 使用工具Myeclipse是在开源工具eclipse的基础上由Genuitec公司添加上自己开发出来的的插件组合而成的具有强大功能的程序开发工具,而且由于对myeclipse的不断更新,功能越来越完善,越来越强大,此工具主要用于进行Java语言程序的开发,而且此工具上手容易,辅助功能强大,如自动生成class文件和进行执行,不必打开命令行进行手动操作,错误提示和出错原因显示的很详细,同时可以改变编码格式,根据自己的喜好改变代码字体的大小、类型和颜色等,导入一些jar包和项目的方法也很便利,自动提示功能也大大加快了代码的生成效率。因此是一个非常好用的工具。2.1.2 主要内容主要包含css、Jsp、JavaScript和Servlet等内容。css是用于进行Jsp页面开发的辅助工具,是用于界面的优化和界面的布局的层叠样式表,css学习起来简单,主要是对不同标签的style属性进行设置,使用div等标签对页面布局进行设计。Jsp的全称是Java Server Pages,是动态页面开发技术,本质上相当于一个简化的Servlet设计,有成为动态网页技术标准,是在传统的HTML基础上可以插入Java程序而形成的的JSP文件,通过在<% %>中添加Java程序使页面设计变得更加简单,与JavaScript的结合使用使其Jsp变得功能更强大,Jsp可以运行于不同的操作系统上,如Linux和Windows。因此Jsp不仅有Java语言简单易用的特点,而且是面向对象的,具有安全可靠和与平台无关的特点5。JavaScript是一种用于Jsp页面进行动态开发的脚本语言,是用来使页面动态显示的语言,主要是通过对Jsp中的标签的属性的控制来实现页面的动态变化,是由Netscape公司的Brendan Eich设计而成的。因为外观相似Java,所以取名为JavaScript。Servlet的全称为Java Servlet,是使用Java编写的服务器端程序,同时也是本次进行后台数据处理和页面显示的主要程序,首先对于页面提交的请求先放到相应的Servlet中,Servlet在调用相应的Java方法对请求进行处理,最后将结果提交到相应的Jsp页面中。2.2 SERVLET技术Servlet是导入特定的Java API包的Java程序,下面简单介绍一下Servlet的生命周期,首先是收到客户端传送过来的请求而加载相应的Servlet类,实例化并通过Servlet的init()方法初始化该Servlet,然后根据不同请求调用相应的doget()方法或者是dopost()方法,此时将调用其中的Java方法进行请求处理,最后返回相应的结果,通过调用destroy()方法销毁Servlet。2.3 访问数据库访问数据库是进行软件开发的重要内容,从进行数据库表项设计开始到在程序中具体使用,对于数据库的具体操作都影响到整个项目的顺利进行,因此选择何种数据库开发工具和对SQL语句的使用都是必不可少的。2.3.1 开发工具本次数据库表的设计和数据存储所用的工具是MySQL,MySQL是目前最流的面向关系型数据库管理系统之一。对于MySQL的图形用户界面采用的是Navicat。虽然与一些大型数据库例如Oracle、DB2和SQL Server相比,MySQL有它的不足之处,但是作为中小型项目开发的数据库还是完全没问题的,而且MySQL是一个开源数据库,免费使用也可以降低项目开发的成本。下面对MySQL的特性进行简单的介绍:1. 采用C和C+编写源代码,通过了多种编译器的测试,代码可移植性好。2. 支持应用于多种操作系统。3. 支持多线程,对于提高CPU资源利用率有很好的效果。4. 开源软件,可以免费使用。5. 提供了用于检查、优化、管理数据库的工具。基于以上特点可以看出,MySQL是个人项目使用工具的极佳的选择,也正是我选择使用MySQL作为数据库的重要参考内容。同时因为所有的数据库原理基本上相同,所以区别也不会太大。2.3.2 语言简介SQL语言又称为结构化查询语言,是用于对数据库进行查询、增添、删除和修改的一种语言,在SQL语言中主要包括五种数据类型:字符型、文本型、数值型、逻辑型和日期型,下面简述本语言的特点:一体化、使用方式灵活、非过程化和语言简介。2.4 MVC模式MVC全名是Model View Controller,分别是模型、视图和控制器的缩写,MVC模式开始是桌面程序的设计模式,M指的是业务层次模型,V指的是用户界面层次的设计,C则指的是控制器层次模型。将业务模型和用户界面进行分离是使用MVC模式的主要目的6。其中的MVC框架是MVC模式的某种框架,MVC程序分为三个核心内容,各自处理各自的内容,如本次开发中的视图层即是Jsp,数据库是本次开发的模型层,Servlet是控制层。下面简单的介绍什么是视图层,什么是模型层,以及控制层的概念。视图层,顾名思义,指的是界面显示的层面,模型层,主要负责的是对数据的管理,例如数据库便是用来对数据库进行管理的工具,但是仅仅有数据库还无法实现与程序的连接,需要导入相应的jar包,书写相应的连接语句,根据不同需要书写不同的SQL语句,然后连接数据库进行查询,因此书写的Java也属于模型层的内容,最后通过控制层将结果打印到视图层。控制层,用于协调视图层和模型层。2.5 本章小结MyEclipse是一个功能强大的IDE工具,是在eclipse基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,支持对各种开源产品,比如可以通过导入Tomcat服务器,实现Java Web程序开发,在浏览器上运行自己的程序,与本地的Tomcat服务器进行交互,同时也支持JDBC数据库链接工具。MySQL是一个小型的关系型数据库管理系统,通过JDBC可以在MyEclipse的程序中使用MySQL工具。第3章 需求分析3.1 可行性分析技术可行性分析是指对本次要研发的项目是否切实可行的分析,具有预见性、公正性、可靠性和科学性的特点,基于的可行性分析是项目开发过程中的重要内容,本次可行性分析主要是进行技术可行性、用户可行性和操作可行性三方面的可行性分析8。3.1.1 技术可行性本次采用的的是MVC设计模式,完全可以满足一般的小型项目开发所需要的技术支持,其中对于一些基础的功能可以通过正常编码完成实现,而对于一些无法通过自己的编写代码,或者因为自己的编程水平无法实现的功能可以通过添加相应的插件,也就是导入相应的jar包,使用其中封装好的方法来实现,虽然如此,但是作为一次独立的项目开发经验,自己会尽可能的使用自己编码的方式结合从网上查找的资料来尝试实现这些功能,总之,通过使用Jsp、Servlet和Java基本上可以实现本次项目。3.1.2 经济可行性本次项目开发所使用的工具有一台电脑、在Windows系统下的Myeclipse软件、Tomcat软件、MySQL软件,其中软件可以免费使用的是MySQL,而另外两个软件也可以找到获取途径,电脑是自己的,因此开发的开发成本很小,而开发所得到的经济效益是很可观的,因为一旦项目真的可以投入使用,那么不仅可以得到一笔收益,还是一次很好地项目成果体验,既是项目无法使用,也可以带给自己很多收获,如开发过程中所积累的知识便是一笔无价之宝,最后的成果尽管不尽如人意,但是从客观的角度评价了自己的成果,可以给自己一个新的定位,也带给自己以后努力的方向和动力。3.1.3 操作可行性操作可行性,也就是用户对使用本软件的满意程度,操作难度等的可行性分析,因此操作可行性与技术可行性是分不开的,只有在技术可行性的基础上才可以设计出操作简单,功能强大,智能化程度高的软件。3.2 项目内容项目的操作大体流程为:首先是进入登录界面,此时可以选择登录、注册或者是以游客的身份直接登录主页,登录主页之后根据不同的目的可以查看餐品、查看餐位、后台登录和离开本网站(即关闭页面),如果选择登录网站,则输入用户名和密码通过后台确认登录主页,如果没有账号则可以选择注册一个账号,注册完成功之后会自动返回登录页面。当登录到主页的时候,可以按照不同的目的浏览不同的页面,也可以进入到个人中心页面,在个人中心页面,可以进行个人信息、订单信息、用户类型和评论信息的管理,不同的信息管理模块产生不同的功能,个人信息管理包括查看个人信息和修改个人信息9,密码也是在修改个人信息中进行修改的,订单信息管理包括添加新订单、查看订单和删除订单等功能,用户类型管理包括查看个人类型和提升用户类型,评论管理分别是餐品评论、员工评论,其中员工评论又分为厨师评论和服务员评论,但是员工评论只能进行好评和差评,餐品评论是用户个人的自由评论。以上是用户功能部分的流程,而后台功能部分的流程可以通过主页面跳转到后台登录界面,输入管理员的账号和密码以登录,登录到后台主页之后可以进行顾客信息、餐品信息、餐位信息、员工信息和订单信息的管理,顾客信息的查看、修改和删除,餐品信息的查看、修改和删除,餐位信息的查看、修改和删除,员工信息又分为厨师信息和服务员信息,主要用于管理员工信息和工资的结算,订单信息是来查看当前应立即处理的订单。3.3 实体-联系图3.3.1 数据对象通过第3.2节中的描述,可以大致分出的数据对象为:游客、顾客(即用户)、管理员、厨师、服务员、订单、评论、餐品和餐位。其中游客没有具体属性,顾客至少包含顾客ID、名称、密码等登录时需要的属性,管理员只需要账号和密码,厨师需要名称、基本工资、好评、差评和联系方式等属性,服务员和厨师相同,订单应包含餐品、餐位、时间和顾客ID等信息,评论是对餐品的评论,因此至少应包含餐品名、评论内容,餐品应包含餐品名、餐品描述、餐品价格、餐品类型等内容,餐位应包含餐位ID、餐位是否可用、餐位类型、餐位座位数等内容。3.3.2 联系不同的对象之间是有联系的,通过这些联系可以是项目内部更加统一和协调,下面对各个对象之间的联系进行分析和总结。首先是游客,因为游客没有属性,因此无法与其他对象产生联系,而在实际的网站中,在登录之前的浏览信息也是没有与后台的联系的。顾客,顾客与订单和评论有关,每位顾客可以有多个订单,与订单是一对多的关系,每位顾客可以对多个餐品进行评论,与评论也是一对多的关系,每位顾客可以对多位厨师进行评论,在评论员工方面是一对多的,每位厨师可能为多为顾客制作餐品,同样一位顾客可能吃到多名厨师做的菜,在做菜方面是多对多的关系,每位服务员可以服务多位顾客,每位顾客也可能在每次用餐有不同的服务员进行服务,因此是多对多的关系。管理员,管理员不与任何对象产生联系。厨师,厨师与餐品有关,每位厨师可以做多种菜,因此与餐品是一对多的关系。与顾客的关系已经在顾客中详细分析。员工,员工主要与顾客产生联系,已经在顾客中进行了分析。订单,每个订单中可能产生多个餐品,因此是一对多的关系,但是每个订单只能预定一个餐位,因此与餐卫是一对一的关系,与顾客的关系在前面已经说明。评论,是由顾客进行评论的,每位顾客可以进行多个评论,因此顾客与评论是一对多的关系。餐品,每位顾客可一享用多种餐品,因此与顾客是多对一的关系,每个餐品可以有多个评价,餐品与评价是一对多的关系,每个餐位上可以放置多个餐品,餐品与餐位是多对一的关系。餐位,通过前面的分析,可以知道餐位与顾客是一对一的关系,与餐品是一对多的关系,与订单也是一对一的关系。3.4 本章小结本章主要内容是对本次项目的大体流程进行分析,从中找出数据对象,分析出数据对象具有的属性,然后分析出不同的数据对象之间多具有的联系,其中的联系有四种,即一对一、一对多、多对一和多对多。本章的分析可以为为之后的数据库设计提供需要的表项和每个表中所具有的数据项。同时对于程序的大体流程有了一个初步的把握,对于接下来的总体设计具有一定的帮助。第4章 数据库表设计4.1 数据库表数据库表与前面的数据对象相对应,因此应包含以下几个数据库表:顾客表、餐品表、餐位表、评价表、厨师表、服务员表、订单表和历史记录表。因为后台的登录所需的账号和密码也需要存储,因此在单独设计一个管理员表项。以上九个表项就是接下来进行数据库设计中所需要的表项。4.2 数据库表中的数据项本节分别对不同的表进行分析,找出每个表所需要的数据项,根据相应的数据项来构造出本次项目开发所需要的数据库。4.2.1 顾客表顾客表也就是用户表,是用来存储订餐或者是浏览网站进行其他各种功能的亿注册用户的相关信息的表项,其中应包含的基础数据项是用户名,密码和用户ID,其中用户ID是由系统自动生成,用户名和密码是由顾客自己在注册时设定的13。除了以上包括的基本数据类型,接下来对还应包含的数据项进行分析,顾客与餐厅之间应该有相应的联系方式,但是如果用户不愿透露自己的联系方式,也可以不写,一次可以在设置一个手机号作为联系方式的数据项。对于已经注册的用户,一些用户可能会具有一些额外的功能,这些顾客具有不同的顾客类型,因此可以设置一个用户类型的数据项,为了可以了解用户的信誉,可以设置一个用户信誉的数据项。4.2.2 餐品表餐品表是用来对餐品信息进行管理的数据库表,其中应该包括餐品应当具有的一些基本信息,因此包括餐品名、餐品ID、餐品价格、餐品类型等信息。除了这些基本信息,还应包含一些额外的数据项,这些数据项也是不可或缺的,在用户浏览网站时,最直观的印象还是通过浏览相应的图片获取的,因此可以在添加一个数据项作为相应餐品的图片信息进行保存,例如添加一个餐品图片位置的数据项,同时餐品类型可能会有不同的分类,经过查阅和浏览一些其他的美食类网站,又将餐品类型分为了三个小类型,分别是地方特色、食品特点和口味三类,而每一类中包含了更多的小分类,这样使得用户在查询相应的餐品时可以得到更加准确、更加丰富的餐品。根据餐品是否新近出品的一类食物可以再加入一个是否新品的数据项。为了使顾客更加了解相应餐品的特点,可以再加入一个餐品描述。4.2.3 餐位表餐位表是用来存储和处理餐位信息的数据库表,应包含的基本信息有餐位ID、餐位可供用餐人数、餐位类型、餐位已经被预定的时间列表,餐位类型可以分为三种:是否靠窗、是否单间、是否露天等。4.2.4 评价表评价表是用来存储用户对餐品所做出的评论信息的一个表项,其中应包括顾客ID、餐品名和评价内容,因为评价表不需要每个表项具有唯一的标识,只要知道每一种餐品的即可评价,一次可以不设置评价ID。4.2.5 厨师表厨师表用来存储和处理厨师信息的表项,其中应包含厨师的基本内容,如厨师ID、厨师名、厨师的基本工资等内容,因为顾客可以对厨师进行好评或者是差评,所以还应包含一个好评数据项和一个差评数据项,用于保存用户提交的对于相应厨师的好评和差评,如何为了提供顾客指定相应的厨师为其服务功能,可以为了顾客浏览顾客信息是信息的完整性而提供一个可以看到厨师头像的数据项,对于一些名厨或者是大厨可以提供一个是否为大厨的数据项进行区别,对于不同的厨师可能会有不同的拿手好菜,因此可以提供一个拿手好菜的数据项,比如餐品ID。为了方便与厨师的联系,可以再加入一个联系方式的数据项,例如电话号码。4.2.6 服务员表服务员的存储信息和信息的处理是基于服务员表进行的,服务员表应当包含的数据项包含服务员ID、服务员的基本工资。同时为了反馈顾客的用餐体验,存储用户对服务员的评价,可以再加入好评和差评两个数据项,为了餐厅管理者与服务员可以便利的联系,加入一个用于保存联系方式的数据项,例如电话号码。因为服务员的工作比较简单,没有与餐品等的联系,因此需要的信息比较少,通过以上的数据项就足以保证服务员的所有信息。4.2.7 订单表订单表是用于存储顾客所预定的餐品和餐位的数据库表,也是用于厨师处理订单顺序所需要的表项,因此应包含的基本信息为:订单ID、订单时间、餐品、餐位等基本信息,如果顾客对于厨师也有要求,那么应该再加入一个厨师名称的数据项,为了方便最后的结账,可以再添加一个总价作为多种所预定的餐品的总价的数据项。4.2.8 历史记录表历史记录表是用来存储已经过期的订单表项的,主要是用于顾客查看过往的消费记录,因此包含的数据项为:餐品名称、餐位ID、价格等基本内容,是对于今后餐厅的正常运作影响很小或者是基本没有用的一些信息。主要是为了方便客户,满足客户的更多功能。4.2.9 管理员表管理员表没有具体的功能,主要用于在管理员登录后台系统时验证管理员的账号密码是否正确时所用的,因此可以设计的比较简单,只有一个登录名和密码即可,而且直接在数据库中输入。4.3 数据库表设计表4-1 用户信息表字段名类型长度默认说明gukeIDint5自增用户表主键,设为自增。passwordvarchar10null用户的密码。typeint1not null用户的级别:0为普通、1为VIP。creditint3not null用户的信誉。nicknamevarchar10not null用户的用户名即账号。phonenumbervarchar20null用户的电话号码。表4-2 餐品信息表字段名类型长度默认说明foodIDint3自增餐品表主键,设为自增。foodNamevarchar10not null餐品的名称。coolIDint3not null厨师的ID。 表4-2(续表)picturelocationvarchar20null餐品图片的位置。localcolorvarchar10null餐品的地方特色分类。foodtypevarchar10null餐品的食品特色分类。tastevarchar10null餐品的口味分类。describevarchar255null餐品的描述。NewFoodint1null餐品是否新近出品:0为否、1为是。表4-3 餐位基本信息表字段名类型长度默认说明seatIDint5自增餐位表主键,设为自增。aroomint10null餐位是否单间:0为否、1为是。havewindowint1null餐位是否靠窗:0为否、1为是。outdoorint1null餐位是否露天:0为否、1为是。numberint2null餐位可容纳的人数。useInfIDint6not null餐位可用时间信息表4-4 订单信息表字段名类型长度默认说明orderIDint8自增订单表主键,设为自增