基于PHP技术的网络订餐系统设计与实现
2015-10-27张华南
张华南
摘要:随着网络技术的快速发展和生活节奏的加快,传统餐饮正逐步向现代餐饮转变,网络订餐作为一种新的用餐模式开始受到餐饮业和消费者的关注,目前网络订餐尚处于初期发展阶段,有待进一步发展与完善,根据目前网络订餐的现状,该文提出了网络订餐系统设计方案,采用PHP语言和MYSQL数据库技术,实现菜单查询、菜单管理等功能。
关键词:网络技术;餐饮;PHP语言;MySQL数据库;网络订餐
中图分类号:TP311.52 文献标识码:A 文章编号:1009-3044(2015)21-0212-03
Network Ordering System Design Based on PHP Technology
ZHANG Hua-nan
(Department of Computer Science and Engineering, Guangdong Peizheng College, Guangzhou 510830, China)
Abstract: With the development of network technology and the accelerated pace of life, the traditional to the modern dining restaurants are gradually changing, the network as a new dining ordering patterns began to be concerned about the food and beverage industry and consumers, the current network ordering is still in early stages of development, to be further development and improvement, based on the current status of the network ordering, this paper presents the design of the network ordering system, using PHP language and MySQL database technology, Menu query, management, and other functions.
Key words: network technology;meal; PHP technology; MySQL database; online ordering
随着互联网技术的快速发展,电子商务对传统产业产生了前所未有的冲击和影响。餐饮业同样不例外,需要充分利用电子商务才能发挥商业中的竞争优势。我国最早开展网上订餐服务的快餐店是肯德基(KFC),最初只是电话订餐,逐步转移到网上订餐,经营规模不断扩张,是最成功的连锁快餐企业之一。
网络订餐系统是将餐厅经营者和顾客紧密联系的电子商务平台,使餐饮企业的营销方式更加多样化,让顾客足不出户方知饭店菜肴样品、特色、价格等,方便网络在线订餐[1]。本系统按功能需求设计多个模块,实现网络订餐的基本功能。
1 开发工具和运行环境
PHP技术[2](Hypertext Preprocessor)中文称“超文本预处理器”,是动态网站常用的开发工具,具有免费、跨平台、HTML嵌入式特点,广泛用于博客、论坛、聊天室等动态网页开发。PHP易学、执行效率高、功能强大,适用于Windows、Linux等在内的绝大多数操作系统环境,常与Web服务器软件Apache和数据库Mysql配合使用,是目前流行的动态网页程序语言,本订餐系统采用PHP技术。
MySQL数据库,具有快速、稳定、易学、易用等特点,常与PHP组合使用,被称为“黄金组合”。[3]
2 订餐流程分析
用户可以通过系统浏览、查询餐饮信息,通过注册、登录进行订餐操作,本系统业务流程图如图1所示。
本系统分普通用户、注册用户和管理员三种不同角色,不同用户有不同权限,普通用户注册成会员便可以查询、浏览、订餐。管理员可以对系统所有信息进行修改、删除、注销等维护管理,游客不能进行修改、删除等操作,所有信息均存储到数据库中。[4]
3 系统设计
3.1 系统功能模块
系统分为两个子系统,前台面向客户系统,后台面向管理员系统,根据系统功能分析,划分两个功能模块,用户功能模块和管理员功能模块[5]。用户功能模块主要是浏览公告信息、菜品信息、留言信息和个人后台管理功能,可进行注册登录订餐和查看个人订单信息等操作。管理员功能模块主要是管理员成功登录后对会员权限进行审核,回复会员留言,管理会员订餐和个人密码,对菜品信息和系统公告进行更新、上传、删除等操作。系统功能模块图如图2所示。
3.2 数据库设计
3.2.1 数据库结构设计
为了对系统进行分析、归纳、整理、表达和优化数据及其联系,此阶段运用系统概念结构模型E-R图[6],系统模块划分后明确在本系统中主要的实体有:管理员、订餐用户、菜品信息、订单信息、菜品类别、留言信息等。建模过程中,用户一次可订购买多种菜品,每个菜品能被多个用户订购,用户与餐饮服务存在多对多的联系[7]。一个用户订购菜品后产生一个订单,用户和订单为一对多的关系,每个订单与用户相对应,系统列表含有多个用户订单信息,订单列表与订单存在一对多的联系。一个管理员可以对多个用户的信息和订单信息进行操作(包括浏览、修改、添加、删除),一个管理员可以对应多个用户[8]。此外这个阶段能明确各个实体之间的关系,从而为后面的逻辑结构[9]设计打下基础。系统实体[10]之间关系的E-R图如图3所示。
管理员信息实体涉及的主要数据项:账号,密码,权限,注册时间。菜品信息实体涉及的主要数据项:菜品编号,菜品名称,类别,图片,简介,价格,发布人,添加时间等。菜品信息实体E-R图如图4所示。
订餐用户信息实体涉及的主要数据项:用户编号,账号,密码,姓名,性别,地区,Email,照片,审核状况,注册时间等。订餐用户实体E-R图如图5所示:
订单信息实体涉及的主要数据项:定单列表编号,菜品编号,菜品名称,数量,价格,用户账号,下单时间等。订单信息实体E-R图如6所示。
3.2.2 数据库逻辑结构设计
概念结构设计完成后进行转换为实际数据库模型逻辑结构[11],,将上述的E-R图转换为关系模型[12],下列关系模型:
管理员(账号,密码,权限)
菜品信息(菜品编号,菜品名称,图片,菜品介绍,价格)
订餐用户(用户编号,用户名,注册时间)
订单信息(订单编号,菜品编号,用户名,订单时间)
菜品类别信息(菜品编号,类别,添加时间)
留言信息(菜品编号,账号,照片,姓名,留言,添加时间,回复)
系统公告信息(编号,标题,类别,内容,添加人,添加时间)
友情链接信息(编号,网站名称,网址,添加时间)
4 系统实现中的关键技术
4.1 Smarty技术
本系统采用Smarty模板技术,实现了分离业务逻辑和表现逻辑[13],Smarty模板文件中包含了一些简单的PHP代码,并实现动态访问的功能[14]。用户能够访问到的所有页面全部采用Smarty模板引擎实现。当网站需要修改时,程序设计人员和美工人员可同时独立工作,提高开发效率[15]。
创建目录用于存放Smarty模板和配置文件:
Require(Root_PATH .'include/cls_template.php');
$Smarty=new cls_template;
$Smarty->cache_lifetime=$_CFG['cahe_time'];
$Smarty->template_dir=ROOT_PATH.'temp/caches';
$Smarty->cache_dir=ROOT_PATH .'temp/caches';
$Smarty->compile_dir=ROOT_PATH.'temp/compiled';
4.2 数据库连接
<?php
$conn=mysql_connect("localhost","root","dcuser") or die("Could not connect:".mysql_error());
mysql_select_db("yhdc",$conn);
mysql_query("set names gb2312");
?>
4.3 模糊查询的实现
include_once"conndbmysql.php";
$query="select * from dc_caidanxinxi where dc_name like '%".$_POST[dc_name]."%'";
$result=mysql_query($query)or die('查询失败'.mysql_error());
while($myrow=mysql_fetch_array($rsall))
4.4 数据安全
一般来说,数据安全漏洞分为两类:第一种类型为web应用平台初始设计时遗留下来的自身的安全漏洞,例如windows, Linux, Apache以及MySQL自身的漏洞;第二种类型为web应用自身存在的安全漏洞,这种在web应用编程的错误极有可能泄漏用户的私人信息,甚至被黑客利用远程访问命令进行数据库查询,用来实施数据的窃取与泄露。
在遇到第一种安全问题,应及时更新或升级安全补丁,保证系统自身安全。第二种安全问题,在PHP编程中对于一些重要数据,如账号、密码等信息通过MD5算法生成哈希(Hash)值从而提高安全性。目前而言使用MD 5算法仍然是安全的。[16]
5 结束语
本订餐系统采用了php语言和mysql数据库技术,并结合Smarty模板实现了网络订餐系统的开发与设计。系统实现了网络在线注册、查询、修改、订餐以及订餐管理等功能,并对系统实现的关键技术进行了分析与阐述。
参考文献:
[1] 印晶. 网上订餐系统的分析和设计[J]. 电脑知识与技术, 2012, 6(11): 259-261.
[2] 梁红颖. 网络订餐系统的设计与实现[J]. 计算机光盘软件与应用. 2014, 3(10): 255-256.
[3] 马朝晖. PHP和MySQL Web应用开发核心技术[M]. 北京: 机械工业出版社, 2012.
[4] 王君学, 于波. Dreamweaver 8中文版网页制作[M]. 2版.北京: 人民邮电出版社, 2011.
[5] 陈湘扬, 陈国益. PHP5+MYSQL网页系统开发设计[M]. 北京: 电子工业出版社, 2012.
[6] 威利. PHP和MySQL Web 开发[M]. 武欣, 译. 北京: 机械工业出版社, 2012.
[7] 黄雅萍, 刘晓强, 吴成义. 基于MySQL和PHP的分布式事务处理[J]. 东华大学学报: 自然科学版, 2011, 37(1): 81-85.
[8] 武国剑, 姚跃传, 潘晴情, 等. 基于PHP & MySQL的高校学生党员管理信息系统设计与实现[J]. 合肥工业大学学报:自然科学版, 2012, 12(11): 1492-1495.
[9] 罗江华. 基于MD5与Base64的混合加密算法[J]. 计算机应用, 2012, 6(8): 47-49.
[10] 曾小松, 梁晶晶, 荣凯. 基于开源技术的网络协作平台建设[J]. 计算机技术与发展, 2014, 24(03): 222-225.
[11] 屈会芳. 应用云计算架构六螺旋协同创新平台[J]. 计算机系统应用, 2014, 23(08): 242-246.
[12] 陈楠. 网站开发实用案例教程[M]. 北京: 清华大学出版社, 2013.
[13] 吴涛, 钟军. 网站全程设计技术[M]. 北京: 清华大学出版社, 2012.
[14] 陈海明, 崔莉, 谢开斌. 物联网体系结构与实现方法的比较研究[J]. 计算机学报, 2013, 8(1): 168-188.
[15] 杨桂丽, 黎敬涛. 基于PHP的一个家庭理财系统的设计与实现[J]. 计算机应用与软件, 2013, 9(2): 259-262.
[16] 王凤玲. 基于PHP+MYSQL的新闻发布系统的研究与实现[J]. 计算机应用与软件, 2012, 29(2): 234-236.