張華南
摘要:隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展和生活節(jié)奏的加快,傳統(tǒng)餐飲正逐步向現(xiàn)代餐飲轉(zhuǎn)變,網(wǎng)絡(luò)訂餐作為一種新的用餐模式開始受到餐飲業(yè)和消費(fèi)者的關(guān)注,目前網(wǎng)絡(luò)訂餐尚處于初期發(fā)展階段,有待進(jìn)一步發(fā)展與完善,根據(jù)目前網(wǎng)絡(luò)訂餐的現(xiàn)狀,該文提出了網(wǎng)絡(luò)訂餐系統(tǒng)設(shè)計(jì)方案,采用PHP語言和MYSQL數(shù)據(jù)庫技術(shù),實(shí)現(xiàn)菜單查詢、菜單管理等功能。
關(guān)鍵詞:網(wǎng)絡(luò)技術(shù);餐飲;PHP語言;MySQL數(shù)據(jù)庫;網(wǎng)絡(luò)訂餐
中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼: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
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,電子商務(wù)對傳統(tǒng)產(chǎn)業(yè)產(chǎn)生了前所未有的沖擊和影響。餐飲業(yè)同樣不例外,需要充分利用電子商務(wù)才能發(fā)揮商業(yè)中的競爭優(yōu)勢。我國最早開展網(wǎng)上訂餐服務(wù)的快餐店是肯德基(KFC),最初只是電話訂餐,逐步轉(zhuǎn)移到網(wǎng)上訂餐,經(jīng)營規(guī)模不斷擴(kuò)張,是最成功的連鎖快餐企業(yè)之一。
網(wǎng)絡(luò)訂餐系統(tǒng)是將餐廳經(jīng)營者和顧客緊密聯(lián)系的電子商務(wù)平臺,使餐飲企業(yè)的營銷方式更加多樣化,讓顧客足不出戶方知飯店菜肴樣品、特色、價格等,方便網(wǎng)絡(luò)在線訂餐[1]。本系統(tǒng)按功能需求設(shè)計(jì)多個模塊,實(shí)現(xiàn)網(wǎng)絡(luò)訂餐的基本功能。
1 開發(fā)工具和運(yùn)行環(huán)境
PHP技術(shù)[2](Hypertext Preprocessor)中文稱“超文本預(yù)處理器”,是動態(tài)網(wǎng)站常用的開發(fā)工具,具有免費(fèi)、跨平臺、HTML嵌入式特點(diǎn),廣泛用于博客、論壇、聊天室等動態(tài)網(wǎng)頁開發(fā)。PHP易學(xué)、執(zhí)行效率高、功能強(qiáng)大,適用于Windows、Linux等在內(nèi)的絕大多數(shù)操作系統(tǒng)環(huán)境,常與Web服務(wù)器軟件Apache和數(shù)據(jù)庫Mysql配合使用,是目前流行的動態(tài)網(wǎng)頁程序語言,本訂餐系統(tǒng)采用PHP技術(shù)。
MySQL數(shù)據(jù)庫,具有快速、穩(wěn)定、易學(xué)、易用等特點(diǎn),常與PHP組合使用,被稱為“黃金組合”。[3]
2 訂餐流程分析
用戶可以通過系統(tǒng)瀏覽、查詢餐飲信息,通過注冊、登錄進(jìn)行訂餐操作,本系統(tǒng)業(yè)務(wù)流程圖如圖1所示。
本系統(tǒng)分普通用戶、注冊用戶和管理員三種不同角色,不同用戶有不同權(quán)限,普通用戶注冊成會員便可以查詢、瀏覽、訂餐。管理員可以對系統(tǒng)所有信息進(jìn)行修改、刪除、注銷等維護(hù)管理,游客不能進(jìn)行修改、刪除等操作,所有信息均存儲到數(shù)據(jù)庫中。[4]
3 系統(tǒng)設(shè)計(jì)
3.1 系統(tǒng)功能模塊
系統(tǒng)分為兩個子系統(tǒng),前臺面向客戶系統(tǒng),后臺面向管理員系統(tǒng),根據(jù)系統(tǒng)功能分析,劃分兩個功能模塊,用戶功能模塊和管理員功能模塊[5]。用戶功能模塊主要是瀏覽公告信息、菜品信息、留言信息和個人后臺管理功能,可進(jìn)行注冊登錄訂餐和查看個人訂單信息等操作。管理員功能模塊主要是管理員成功登錄后對會員權(quán)限進(jìn)行審核,回復(fù)會員留言,管理會員訂餐和個人密碼,對菜品信息和系統(tǒng)公告進(jìn)行更新、上傳、刪除等操作。系統(tǒng)功能模塊圖如圖2所示。
3.2 數(shù)據(jù)庫設(shè)計(jì)
3.2.1 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)
為了對系統(tǒng)進(jìn)行分析、歸納、整理、表達(dá)和優(yōu)化數(shù)據(jù)及其聯(lián)系,此階段運(yùn)用系統(tǒng)概念結(jié)構(gòu)模型E-R圖[6],系統(tǒng)模塊劃分后明確在本系統(tǒng)中主要的實(shí)體有:管理員、訂餐用戶、菜品信息、訂單信息、菜品類別、留言信息等。建模過程中,用戶一次可訂購買多種菜品,每個菜品能被多個用戶訂購,用戶與餐飲服務(wù)存在多對多的聯(lián)系[7]。一個用戶訂購菜品后產(chǎn)生一個訂單,用戶和訂單為一對多的關(guān)系,每個訂單與用戶相對應(yīng),系統(tǒng)列表含有多個用戶訂單信息,訂單列表與訂單存在一對多的聯(lián)系。一個管理員可以對多個用戶的信息和訂單信息進(jìn)行操作(包括瀏覽、修改、添加、刪除),一個管理員可以對應(yīng)多個用戶[8]。此外這個階段能明確各個實(shí)體之間的關(guān)系,從而為后面的邏輯結(jié)構(gòu)[9]設(shè)計(jì)打下基礎(chǔ)。系統(tǒng)實(shí)體[10]之間關(guān)系的E-R圖如圖3所示。
管理員信息實(shí)體涉及的主要數(shù)據(jù)項(xiàng):賬號,密碼,權(quán)限,注冊時間。菜品信息實(shí)體涉及的主要數(shù)據(jù)項(xiàng):菜品編號,菜品名稱,類別,圖片,簡介,價格,發(fā)布人,添加時間等。菜品信息實(shí)體E-R圖如圖4所示。
訂餐用戶信息實(shí)體涉及的主要數(shù)據(jù)項(xiàng):用戶編號,賬號,密碼,姓名,性別,地區(qū),Email,照片,審核狀況,注冊時間等。訂餐用戶實(shí)體E-R圖如圖5所示:
訂單信息實(shí)體涉及的主要數(shù)據(jù)項(xiàng):定單列表編號,菜品編號,菜品名稱,數(shù)量,價格,用戶賬號,下單時間等。訂單信息實(shí)體E-R圖如6所示。
3.2.2 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)
概念結(jié)構(gòu)設(shè)計(jì)完成后進(jìn)行轉(zhuǎn)換為實(shí)際數(shù)據(jù)庫模型邏輯結(jié)構(gòu)[11],,將上述的E-R圖轉(zhuǎn)換為關(guān)系模型[12],下列關(guān)系模型:
管理員(賬號,密碼,權(quán)限)
菜品信息(菜品編號,菜品名稱,圖片,菜品介紹,價格)
訂餐用戶(用戶編號,用戶名,注冊時間)
訂單信息(訂單編號,菜品編號,用戶名,訂單時間)
菜品類別信息(菜品編號,類別,添加時間)
留言信息(菜品編號,賬號,照片,姓名,留言,添加時間,回復(fù))
系統(tǒng)公告信息(編號,標(biāo)題,類別,內(nèi)容,添加人,添加時間)
友情鏈接信息(編號,網(wǎng)站名稱,網(wǎng)址,添加時間)
4 系統(tǒng)實(shí)現(xiàn)中的關(guān)鍵技術(shù)
4.1 Smarty技術(shù)
本系統(tǒng)采用Smarty模板技術(shù),實(shí)現(xiàn)了分離業(yè)務(wù)邏輯和表現(xiàn)邏輯[13],Smarty模板文件中包含了一些簡單的PHP代碼,并實(shí)現(xiàn)動態(tài)訪問的功能[14]。用戶能夠訪問到的所有頁面全部采用Smarty模板引擎實(shí)現(xiàn)。當(dāng)網(wǎng)站需要修改時,程序設(shè)計(jì)人員和美工人員可同時獨(dú)立工作,提高開發(fā)效率[15]。
創(chuàng)建目錄用于存放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 數(shù)據(jù)庫連接
<?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 模糊查詢的實(shí)現(xiàn)
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 數(shù)據(jù)安全
一般來說,數(shù)據(jù)安全漏洞分為兩類:第一種類型為web應(yīng)用平臺初始設(shè)計(jì)時遺留下來的自身的安全漏洞,例如windows, Linux, Apache以及MySQL自身的漏洞;第二種類型為web應(yīng)用自身存在的安全漏洞,這種在web應(yīng)用編程的錯誤極有可能泄漏用戶的私人信息,甚至被黑客利用遠(yuǎn)程訪問命令進(jìn)行數(shù)據(jù)庫查詢,用來實(shí)施數(shù)據(jù)的竊取與泄露。
在遇到第一種安全問題,應(yīng)及時更新或升級安全補(bǔ)丁,保證系統(tǒng)自身安全。第二種安全問題,在PHP編程中對于一些重要數(shù)據(jù),如賬號、密碼等信息通過MD5算法生成哈希(Hash)值從而提高安全性。目前而言使用MD 5算法仍然是安全的。[16]
5 結(jié)束語
本訂餐系統(tǒng)采用了php語言和mysql數(shù)據(jù)庫技術(shù),并結(jié)合Smarty模板實(shí)現(xiàn)了網(wǎng)絡(luò)訂餐系統(tǒng)的開發(fā)與設(shè)計(jì)。系統(tǒng)實(shí)現(xiàn)了網(wǎng)絡(luò)在線注冊、查詢、修改、訂餐以及訂餐管理等功能,并對系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù)進(jìn)行了分析與闡述。
參考文獻(xiàn):
[1] 印晶. 網(wǎng)上訂餐系統(tǒng)的分析和設(shè)計(jì)[J]. 電腦知識與技術(shù), 2012, 6(11): 259-261.
[2] 梁紅穎. 網(wǎng)絡(luò)訂餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)光盤軟件與應(yīng)用. 2014, 3(10): 255-256.
[3] 馬朝暉. PHP和MySQL Web應(yīng)用開發(fā)核心技術(shù)[M]. 北京: 機(jī)械工業(yè)出版社, 2012.
[4] 王君學(xué), 于波. Dreamweaver 8中文版網(wǎng)頁制作[M]. 2版.北京: 人民郵電出版社, 2011.
[5] 陳湘揚(yáng), 陳國益. PHP5+MYSQL網(wǎng)頁系統(tǒng)開發(fā)設(shè)計(jì)[M]. 北京: 電子工業(yè)出版社, 2012.
[6] 威利. PHP和MySQL Web 開發(fā)[M]. 武欣, 譯. 北京: 機(jī)械工業(yè)出版社, 2012.
[7] 黃雅萍, 劉曉強(qiáng), 吳成義. 基于MySQL和PHP的分布式事務(wù)處理[J]. 東華大學(xué)學(xué)報: 自然科學(xué)版, 2011, 37(1): 81-85.
[8] 武國劍, 姚躍傳, 潘晴情, 等. 基于PHP & MySQL的高校學(xué)生黨員管理信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版, 2012, 12(11): 1492-1495.
[9] 羅江華. 基于MD5與Base64的混合加密算法[J]. 計(jì)算機(jī)應(yīng)用, 2012, 6(8): 47-49.
[10] 曾小松, 梁晶晶, 榮凱. 基于開源技術(shù)的網(wǎng)絡(luò)協(xié)作平臺建設(shè)[J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2014, 24(03): 222-225.
[11] 屈會芳. 應(yīng)用云計(jì)算架構(gòu)六螺旋協(xié)同創(chuàng)新平臺[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2014, 23(08): 242-246.
[12] 陳楠. 網(wǎng)站開發(fā)實(shí)用案例教程[M]. 北京: 清華大學(xué)出版社, 2013.
[13] 吳濤, 鐘軍. 網(wǎng)站全程設(shè)計(jì)技術(shù)[M]. 北京: 清華大學(xué)出版社, 2012.
[14] 陳海明, 崔莉, 謝開斌. 物聯(lián)網(wǎng)體系結(jié)構(gòu)與實(shí)現(xiàn)方法的比較研究[J]. 計(jì)算機(jī)學(xué)報, 2013, 8(1): 168-188.
[15] 楊桂麗, 黎敬濤. 基于PHP的一個家庭理財系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2013, 9(2): 259-262.
[16] 王鳳玲. 基于PHP+MYSQL的新聞發(fā)布系統(tǒng)的研究與實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2012, 29(2): 234-236.