基于微信平台的“快递超市”设计
?
畢業(yè)設(shè)計(jì)說(shuō)明書(shū)
?
?
基于微信平臺(tái)的“快遞超市”設(shè)計(jì)
???????????
?
?
基于微信平臺(tái)的“快遞超市”設(shè)計(jì)
?
?
摘?? 要
?
通過(guò)對(duì)當(dāng)今快遞信息管理的分析,依托微信,采用 PHP 和 MySQL 及Apache 技術(shù)實(shí)現(xiàn)了一個(gè)“快遞超市”系統(tǒng)。本設(shè)計(jì)總結(jié)了快遞信息管理的要點(diǎn),介紹了微信平臺(tái)的優(yōu)勢(shì),解析了整個(gè)系統(tǒng)開(kāi)發(fā)的一些關(guān)鍵技術(shù)與設(shè)計(jì),這些技術(shù)與設(shè)計(jì)在類(lèi)似系統(tǒng)中具有一定通用性。開(kāi)發(fā)與實(shí)踐的結(jié)果顯示,采用以上技術(shù)與設(shè)計(jì),可以有效地提高快遞信息在服務(wù)商與用戶的傳遞及管理效率,具有較高的實(shí)用性。
?
關(guān)鍵詞 微信;快遞;Apache;PHP;MySQL
?
?
?
Design of ‘express-supermarket’
Based on WeChat
?
?
ABSTRACT
?
?
Forthe current status of express information management, relying on WeChat, usingPHP and MySQL and Apache technology to achieve ‘express-supermarket’ system.This design analyzes the key of express delivery information management,introduces the advantages of WeChat platform, and analyzes some keytechnologies and designs of the whole system development. These techniques anddesigns have certain versatility in similar system. Development and practice ofthe results show that the use of the above technology and design, caneffectively improve the delivery of information in the service providers andusers of the transmission and management efficiency, with high practicality.
?
KEY WORDS? WeChat; Express; Apache; PHP; MySQL
?
目?錄
?
?
中文摘要.I
英文摘要.II
目? 錄.III
引? 言.1
1..現(xiàn)狀分析. 1
1.1?快遞. 1
1.2?微信. 2
1.3?構(gòu)想. 2
2..系統(tǒng)功能. 2
2.1.需求設(shè)計(jì). 2
2.1.1身份認(rèn)證.3
2.1.2自主下單.3
2.1.3信息查詢(xún).3
2.2.功能設(shè)計(jì). 3
3..系統(tǒng)架構(gòu). 4
3.1.服務(wù)器. 5
3.2.操作系統(tǒng). 5
3.3.服務(wù)器軟件. 5
3.4.編程語(yǔ)言. 6
3.5.數(shù)據(jù)庫(kù). 6
4..代碼編程. 8
4.1.微信端. 8
4.2.服務(wù)器端. 9
4.3.數(shù)據(jù)庫(kù)端. 11
5..系統(tǒng)完成. 12
5.1.代碼部署. 12
5.1.1微信端.12
5.1.2服務(wù)器端.13
5.1.3數(shù)據(jù)庫(kù)端.13
5.2.功能測(cè)試. 13
6..設(shè)計(jì)總結(jié). 16
參考文獻(xiàn).17
致? 謝.18
?
?
引?言
隨著快遞物流環(huán)節(jié)的精良化,以及快遞數(shù)據(jù)環(huán)節(jié)的信息化,傳統(tǒng)使用的手寫(xiě)紙質(zhì)快遞單造成的電子數(shù)據(jù)生成錯(cuò)誤甚至失敗的問(wèn)題,以及客戶對(duì)快遞物流信息的查詢(xún)對(duì)快遞信息傳遞及管理的要求越發(fā)凸顯。而微信是騰訊公司在2011年推出的一個(gè)基于智能手機(jī)的免費(fèi)應(yīng)用程序,其核心是社交通訊,這一屬性將用戶牢牢地聚集在平臺(tái)之上。截止到2016年第二季度,月活躍用戶已達(dá)到 8.06億。用戶和企業(yè)可以非常方便的在平臺(tái)上進(jìn)行溝通。微信平臺(tái)為解決快遞信息傳遞及管理問(wèn)題創(chuàng)造了新的可能性。
本論文的研究主題范圍內(nèi),并沒(méi)有針對(duì)性的文獻(xiàn)可供參考。對(duì)于本論文而言,只能?chē)L試將各相關(guān)研究范圍內(nèi)的文獻(xiàn)資料進(jìn)行收集整理,即收集整理包含快遞、網(wǎng)絡(luò)研發(fā)、微信各方面的文獻(xiàn)。并嘗試從網(wǎng)絡(luò)的浩瀚之海中學(xué)習(xí)前沿的技術(shù)并加以應(yīng)用。在整個(gè)設(shè)計(jì)研究過(guò)程中,研究得以不斷改進(jìn)與優(yōu)化。
微信公眾平臺(tái)的后臺(tái)實(shí)際上就是一個(gè)WEB項(xiàng)目,能夠開(kāi)發(fā)WEB項(xiàng)目的語(yǔ)言環(huán)境都可以實(shí)現(xiàn)。但每個(gè)語(yǔ)言都有各自的特性。例如準(zhǔn)備周期不同,開(kāi)發(fā)周期不同,可支持性不同,可維護(hù)性不同等等。因此,分析需求并設(shè)計(jì)合理的系統(tǒng)架構(gòu),并選擇在合適的編程語(yǔ)言平臺(tái)上,以及選用適宜的該編程語(yǔ)言的框架完成本系統(tǒng)的各項(xiàng)功能,是主要的問(wèn)題。
本論文通過(guò)對(duì)當(dāng)下快遞信息需求,用戶需求,及快遞服務(wù)提供商需求的分析,進(jìn)行了“快遞超市”的功能設(shè)計(jì),將內(nèi)在的功能邏輯轉(zhuǎn)化為實(shí)際代碼,部署到服務(wù)器上,并成功地在微信上進(jìn)行使用。通過(guò)實(shí)際使用者的反饋,“快遞超市”極大的滿足了快遞信息傳遞及管理方面的需求。
基于微信平臺(tái)的“快遞超市”設(shè)計(jì)為解決傳統(tǒng)使用的手寫(xiě)快遞單造成的電子數(shù)據(jù)生成錯(cuò)誤甚至失敗的問(wèn)題,以及客戶對(duì)快遞物流信息的查詢(xún)、提醒即時(shí)性的要求,并提供除身份證以外的其他身份認(rèn)證方式進(jìn)行了探索,達(dá)到了本論文研究的目的。
?
1???現(xiàn)狀分析
?
社會(huì)正處于電子信息化時(shí)代,大多數(shù)熟悉的生產(chǎn)生活方式的形態(tài)都處于快速的更迭之中。在此趨勢(shì)下,一些原本分屬于不同的生活功能也許能以一種難以預(yù)料的方式結(jié)合起來(lái),產(chǎn)生出全新的功能,并改變?nèi)藗冊(cè)械纳a(chǎn)生活方式。
1.1? 快遞
在未采用電子信息化時(shí),所有快遞數(shù)據(jù)均采用人工管理,以會(huì)計(jì)的記賬法管理將所有紙質(zhì)快遞單數(shù)據(jù)收集并整理。快遞數(shù)據(jù)的搜集、分類(lèi)、處理、反饋等操作程序在傳統(tǒng)的手工操作中,工作效率偏低,但由于當(dāng)時(shí)物流環(huán)節(jié)的限制,對(duì)快遞數(shù)據(jù)的要求不是首要之急。
當(dāng)進(jìn)入電子信息化時(shí)代后,所有的數(shù)據(jù)在新的管理方式下,需要從手寫(xiě)的紙質(zhì)快遞單轉(zhuǎn)換為電子數(shù)據(jù),于是出現(xiàn)了兩種信息轉(zhuǎn)換方式。第一種是人工錄入方式,即將紙質(zhì)快遞單交給熟悉電腦數(shù)據(jù)錄入的人員進(jìn)行逐條錄入。但這一方式本質(zhì)上仍需人工處理每條數(shù)據(jù),數(shù)據(jù)的錄入速度沒(méi)有得到很大的提高。第二種是文字識(shí)別方式,即通過(guò)程序智能識(shí)別紙質(zhì)快遞單上的文字,并將其轉(zhuǎn)換為電子數(shù)據(jù)。但程序的文字識(shí)別準(zhǔn)確率不高,只能作為一種輔助手段,無(wú)法成為一種主流的信息轉(zhuǎn)換方式。并且快遞客戶對(duì)查詢(xún)、提醒的即時(shí)性要求進(jìn)一步提升。
其次,快遞的簽收流程要求簽收人必須攜帶有效的身份證件以提供證明。也就意味著如果沒(méi)有攜帶有效的身份證件就不能對(duì)快遞進(jìn)行簽收。必要的身份認(rèn)證無(wú)可避免,但若能提供有一種便捷而安全的身份認(rèn)證方式來(lái)代替上述方式,會(huì)有效的提高快遞服務(wù)的質(zhì)量。
1.2? 微信
隨著信息化時(shí)代的到來(lái),傳統(tǒng)的打電話、發(fā)短信的無(wú)法滿足人們對(duì)溝通方式的要求,使用手機(jī)聊天軟件進(jìn)行溝通和交流的人越來(lái)越多。
不僅僅是因?yàn)橄啾葌鹘y(tǒng)打電話、發(fā)短信,軟件聊天只花費(fèi)少量流量費(fèi)用,節(jié)約了開(kāi)支;另一方面,方便和快捷的軟件,功能強(qiáng)大,創(chuàng)造了更多有趣、新穎的聊天方式。當(dāng)前,在主流手機(jī)聊天軟件中發(fā)展最好,使用人群最多的就是微信了,微信 App 經(jīng)過(guò)多次更新,從最初單一的語(yǔ)音通訊聊天,到如今已成為獨(dú)立的、立體化的社交媒介,并且成為時(shí)下人們的一種生活習(xí)慣。當(dāng)今最流行的聊天平臺(tái)——微信,被越來(lái)越多人所選擇。
但是,信息化時(shí)代產(chǎn)品更迭超乎想象,強(qiáng)大的互聯(lián)網(wǎng)技術(shù)層出不窮,聊天軟件市場(chǎng)競(jìng)爭(zhēng)越發(fā)激烈,而微信平臺(tái)要想立于不敗之地,就必須保持對(duì)市場(chǎng)的敏銳性,滿足廣大客戶的需求,將這種新興傳播模式持續(xù)健康發(fā)展[1]。
1.3? 構(gòu)想
快遞行業(yè)的發(fā)展重心已逐步由物流環(huán)節(jié)移向數(shù)據(jù)環(huán)節(jié)。如果能在擁有大用戶基數(shù)的微信平臺(tái)上,進(jìn)行對(duì)快遞的數(shù)據(jù)管理,那么,快遞的數(shù)據(jù)管理可以分解至每一個(gè)用戶。即由用戶直接產(chǎn)生電子數(shù)據(jù),可以選擇不再使用紙質(zhì)快遞單。這樣,用戶既免去了手寫(xiě)快遞單的步驟,并且可以在微信平臺(tái)上隨時(shí)隨地填寫(xiě)信息,也免去必須去快遞營(yíng)業(yè)點(diǎn)所花費(fèi)的時(shí)間。
此外,時(shí)下興起的二維碼技術(shù)通過(guò)合理的設(shè)計(jì)也許可以提供一種便捷而安全的身份認(rèn)證方式。
?
2???系統(tǒng)功能
?
通過(guò)系統(tǒng)的流程及需求,設(shè)計(jì)分析系統(tǒng)所要實(shí)現(xiàn)的功能及功能的結(jié)構(gòu)體系,并以此進(jìn)行合理有效的服務(wù)器與數(shù)據(jù)庫(kù)設(shè)計(jì)。
2.1? 需求設(shè)計(jì)
2.1.1???身份認(rèn)證
1.在線填寫(xiě)用戶姓名,手機(jī)號(hào)即可完成在公眾號(hào)的注冊(cè)。由于手機(jī)號(hào)已完成實(shí)名認(rèn)證,故不需身份證號(hào),注冊(cè)后生成與用戶綁定的二維碼,快遞工作人員通過(guò)掃描該二維碼即可完成實(shí)名認(rèn)證。
2.收件認(rèn)證本人收件,掃描實(shí)名二維碼認(rèn)證;委托收件,收件人可掃描委托人唯一二維碼增加快件接收人信息,委托人可根據(jù)本人唯一二維碼進(jìn)行收件,減少快遞丟失概率。
2.1.2???自主下單
1.選擇快遞公司,輸入快件大致重量體積與遞送地,自動(dòng)生成校園內(nèi)可寄送的快遞公司的價(jià)格與遞送時(shí)長(zhǎng)。
2.移動(dòng)端填寫(xiě)信息,用戶通過(guò)移動(dòng)端填寫(xiě)信息:寄件人姓名、聯(lián)系方式等,收件人姓名、地址、聯(lián)系方式。
3.移動(dòng)端與快遞小屋打印機(jī)互聯(lián),打印快遞單。
2.1.3???信息查詢(xún)
1.查詢(xún),移動(dòng)端實(shí)時(shí)查詢(xún);問(wèn)題件、疑難件提醒。
2.到件提醒,取件時(shí)間、地點(diǎn)提醒。
2.2? 功能設(shè)計(jì)
由于快遞數(shù)據(jù)的數(shù)據(jù)庫(kù)由快遞服務(wù)商管理,當(dāng)快遞服務(wù)商對(duì)數(shù)據(jù)有需求時(shí),可直接使用數(shù)據(jù)庫(kù)進(jìn)行功能定制。因此本設(shè)計(jì)側(cè)重研究用戶所需功能。用戶功能設(shè)計(jì)如表2-1 所示。
?
表2-1 用戶功能設(shè)計(jì)
| 功能 | 功能大類(lèi) |
| 選擇快遞公司,輸入快件大致重量體積與遞送地,自動(dòng)生成校園內(nèi)可寄送的快遞公司的價(jià)格與遞送時(shí)長(zhǎng)。 ? | 寄件 |
| 移動(dòng)端實(shí)時(shí)查詢(xún)物流情況 ? | 查詢(xún) |
| 問(wèn)題件、疑難件提醒, ? 到件提醒,取件時(shí)間、地點(diǎn)提醒。 ? | 查詢(xún) |
| 在線填寫(xiě)用戶姓名,手機(jī)號(hào)即可完成在公眾號(hào)的注冊(cè)。由于手機(jī)號(hào)已完成實(shí)名認(rèn)證,故不需身份證號(hào),注冊(cè)后生成與用戶綁定的二維碼,快遞工作人員通過(guò)掃描該二維碼即可完成實(shí)名認(rèn)證。 ? | 認(rèn)證 |
| 收件認(rèn)證本人收件,掃描實(shí)名二維碼認(rèn)證;委托收件,收件人可掃描委托人唯一二維碼增加快件接收人信息,委托人可根據(jù)本人唯一二維碼進(jìn)行收件,減少快遞丟失概率。 ? | 認(rèn)證 |
| 移動(dòng)端填寫(xiě)信息,用戶通過(guò)移動(dòng)端填寫(xiě)信息:寄件人姓名、聯(lián)系方式等,收件人姓名、地址、聯(lián)系方式。 | 寄件 |
?
實(shí)際實(shí)現(xiàn)時(shí),為了便于直觀性及使用性,再劃分功能后,微信菜單結(jié)構(gòu)設(shè)計(jì)如圖2-1所示。
圖2-1 菜單結(jié)構(gòu)圖
3???系統(tǒng)架構(gòu)
?
系統(tǒng)采用標(biāo)準(zhǔn)的三層 B/S 架構(gòu),分為手機(jī)端、服務(wù)器端、數(shù)據(jù)庫(kù)端,如圖3-1所示。手機(jī)頁(yè)面展示端選擇微信。但是也需對(duì)服務(wù)器商,操作系統(tǒng),以及服務(wù)器軟件與編程語(yǔ)言等部署環(huán)境進(jìn)行合理選擇。
?
圖3-1 系統(tǒng)結(jié)構(gòu)圖
?
3.1? 服務(wù)器
快遞信息管理系統(tǒng)其本質(zhì)是管理信息系統(tǒng)( MIS )。
通過(guò)各種資料查詢(xún),阿里云對(duì)解決快遞信息管理系統(tǒng)應(yīng)用問(wèn)題有如下優(yōu)勢(shì):
(1)通過(guò)基于阿里云平臺(tái)的 MIS 發(fā)揮大數(shù)據(jù)、云計(jì)算,為快遞服務(wù)商供給個(gè)人彈性化的、靈活的、訂制化的快遞服務(wù),滿足中小企業(yè)集群化和產(chǎn)品靈活調(diào)度,降低中小企業(yè)的資金成本和人力資源成本的需求提供了優(yōu)勢(shì)。
(2)基于阿里云平臺(tái)的快遞信息管理系統(tǒng)可以利用大數(shù)據(jù)技術(shù)分析快遞信息服務(wù)所匯聚的中小企業(yè)的信息,為中小企業(yè)供給更加強(qiáng)有力的集群化和產(chǎn)品靈活調(diào)度的服務(wù)。
(3)阿里巴巴集團(tuán)發(fā)揮阿里云平臺(tái)的優(yōu)勢(shì),對(duì)快遞信息管理系統(tǒng)形成一種支撐力,有利于加深阿里巴巴集團(tuán)與中小企業(yè)的合作,在阿里巴巴集團(tuán)與中小企業(yè)之間構(gòu)筑聯(lián)盟[2]。
綜上所述,本系統(tǒng)的服務(wù)器選擇架設(shè)在阿里云服務(wù)器上。
3.2? 操作系統(tǒng)
現(xiàn)在常用服務(wù)器的操作系統(tǒng)大致分為兩類(lèi): WindowsNT與 Linux。
Windows NT操作者經(jīng)過(guò)簡(jiǎn)短的培訓(xùn)即可掌握?qǐng)D形用戶界面,其安裝、使用和管理都比較簡(jiǎn)單。由于Windows NT 內(nèi)置 IIS(Internet Informationservice) ,可以很容易地實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù),包括 WWW 、 FTP 、 Gopher 等。因此在很多時(shí)候人們會(huì)選擇使用 Windows NT 。雖然 WindowsNT 是一個(gè)易于操作者管理和實(shí)現(xiàn)各種網(wǎng)絡(luò)服務(wù)的操作系統(tǒng),但其穩(wěn)定性和可靠性不好,出現(xiàn)死機(jī)的狀況比較頻繁,與UNIX及Linux系統(tǒng)相比, WindowsNT差距很大。而且,由于圖形占用大量硬件資源,所以雖然操作起來(lái) Windows NT 相對(duì)簡(jiǎn)單,但對(duì)系統(tǒng)要求較UNIX 及 Linux 高,在性能速度上更是比Linux遜色很多[3]。
基于以上考慮,本系統(tǒng)服務(wù)器的操作系統(tǒng)選擇 Linux ,以保證服務(wù)器無(wú)人監(jiān)守時(shí)穩(wěn)定運(yùn)行。
3.3? 服務(wù)器軟件
現(xiàn)在常用的服務(wù)器軟件有IIS(Microsoft)、Apache、Nginx、Tomcat等。
與Linux相似,很大程度上,Apache的巨大成功的原因是由于其開(kāi)源。相比其他平臺(tái),Apache 的跨平臺(tái)性尤甚,不僅完成了許多基本的功能,例如I/O、內(nèi)存分配等,并且這些接口與具體平臺(tái)無(wú)關(guān),因此,只要通過(guò)對(duì)原有的Apache Web服務(wù)器進(jìn)行較少的配置,就可以構(gòu)建一個(gè)伸縮性強(qiáng)的服務(wù)器系統(tǒng);同時(shí),因?yàn)槭褂煤?jiǎn)單的結(jié)構(gòu)和算法,使Apache Web服務(wù)器的理解和維護(hù)相對(duì)容易,系統(tǒng)穩(wěn)定性也得到提高[4]。
基于以上考慮,本系統(tǒng)服務(wù)器的服務(wù)器軟件選擇 Apache ,以保證服務(wù)器的穩(wěn)定運(yùn)行,并為后續(xù)的系統(tǒng)開(kāi)發(fā)提供了便利。
3.4? 編程語(yǔ)言
編程語(yǔ)言選擇計(jì)算機(jī)語(yǔ)言中的高級(jí)語(yǔ)言,以免去底層編程的精力。但即便如此,計(jì)算機(jī)的高級(jí)語(yǔ)言種類(lèi)也十分繁多,例如:C 、 C++ 、 C# 、Java 、 PHP 、ASP等等。
其實(shí)每一門(mén)編程語(yǔ)言都有各自的優(yōu)缺,而在服務(wù)器端有很多編程語(yǔ)言都能勝任工作。但經(jīng)過(guò)仔細(xì)的斟酌,本系統(tǒng)服務(wù)器的編程語(yǔ)言選擇PHP。
PHP作為在編程人員中新興的熱門(mén)語(yǔ)言。引用PHP(PersonalHome Page Tools)的官方主頁(yè) http://www.php.net 的介紹,PHP是一種腳本語(yǔ)言。其實(shí),它的一些特性與ASP相似,而且主要功能也是用于動(dòng)態(tài)交互式的Web服務(wù)器應(yīng)用程序的開(kāi)發(fā)。PHP構(gòu)思于1994年,1995年公開(kāi)第一個(gè)版本。而最新版修復(fù)了歷史版本的一些BUG,并且加入新的擴(kuò)展功能,使PHP 支持 HTTP 身份驗(yàn)證,Cookie、GIF圖像創(chuàng)建等。目前,由PHP開(kāi)發(fā)人員開(kāi)發(fā)的PHP 被大量采用,而且一些大體量的集團(tuán)公司也采用了 PHP 進(jìn)行網(wǎng)站開(kāi)發(fā)。如今,世界上有超過(guò)600萬(wàn)個(gè)網(wǎng)站使用 PHP ,并且仍然保持增長(zhǎng)的趨勢(shì)。PHP的出現(xiàn),可以成為 ASP 及JSP之外的有一種選擇,甚至是最佳選擇。它不僅擁有其他網(wǎng)站編程語(yǔ)言的優(yōu)點(diǎn),并且它在簡(jiǎn)便的開(kāi)發(fā) Web 應(yīng)用程序的特性,又具有跨平臺(tái)的可移植性,非常具有發(fā)展?jié)摿?sup>[5]。
3.5? 數(shù)據(jù)庫(kù)
使用穩(wěn)定的數(shù)據(jù)庫(kù)來(lái)對(duì)數(shù)據(jù)進(jìn)行管理,是整個(gè)設(shè)計(jì)過(guò)程中極為重要的一環(huán)。如果數(shù)據(jù)庫(kù)設(shè)計(jì)不合理,那么對(duì)數(shù)據(jù)的管理將變得十分復(fù)雜。所以根據(jù)前期的需求分析與系統(tǒng)的數(shù)據(jù)體系,選擇使用MySQL 。
MySQL 作為目前三大數(shù)據(jù)庫(kù)環(huán)境:SQL Server、 MySQL 、 Oracle 之一,相比其他選擇,具有體積小、速度快、總體擁有成本低,開(kāi)源等優(yōu)勢(shì),對(duì)于本系統(tǒng)而言,是合適之選。
MySQL是 Oracle 公司開(kāi)源的 RDBMS(Relational Database Management System ,關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))應(yīng)用,是關(guān)系型數(shù)據(jù)庫(kù)軟件中在Web應(yīng)用領(lǐng)域最受歡迎的選擇之一。MySQL 使用標(biāo)準(zhǔn)化 SQL 數(shù)據(jù)庫(kù)管理語(yǔ)言,具有較強(qiáng)通用性,為有經(jīng)驗(yàn)的數(shù)據(jù)庫(kù)管理人員最佳選擇節(jié)省了學(xué)習(xí)成本[6]。 MySQL 數(shù)據(jù)庫(kù)不僅包括數(shù)據(jù)定義、操縱、控制、服務(wù)等主流數(shù)據(jù)庫(kù)管理功能,其中數(shù)據(jù)操縱以數(shù)據(jù)查詢(xún)、數(shù)據(jù)更新、數(shù)據(jù)刪除為主。關(guān)系型數(shù)據(jù)庫(kù)部分是SQL 數(shù)據(jù)庫(kù)的核心部分,通過(guò)定義數(shù)據(jù)關(guān)系模式,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)操作[7]。
根據(jù)數(shù)據(jù)的存儲(chǔ)模型劃分,數(shù)據(jù)庫(kù)類(lèi)型大致分為:網(wǎng)狀數(shù)據(jù)庫(kù)(Network Database)、樹(shù)狀數(shù)據(jù)庫(kù)(HierarchicalDatabase)、面向?qū)ο髷?shù)據(jù)庫(kù)(Object-oriented Database)及關(guān)系數(shù)據(jù)庫(kù)(Relational Database)。商業(yè)應(yīng)用中數(shù)據(jù)庫(kù)管理系統(tǒng)主要使用關(guān)系型數(shù)據(jù)庫(kù)。關(guān)系型數(shù)據(jù)庫(kù)基于關(guān)系代數(shù)對(duì)數(shù)據(jù)進(jìn)行管理操作的,關(guān)系代數(shù)的操作有:并、交、差、叉積、選擇、投影及連接。數(shù)據(jù)庫(kù)管理系統(tǒng)根據(jù)需求,對(duì)一個(gè)及多個(gè)關(guān)系數(shù)據(jù),進(jìn)行合理高效的運(yùn)算.取出其中符合操作者需求的集合。用更直觀的介紹方式來(lái)說(shuō),對(duì)于關(guān)系型數(shù)據(jù)庫(kù)而言,管理系統(tǒng)將數(shù)據(jù)視作操作單元,操作是對(duì)操作單元進(jìn)行的[8]。
雖然關(guān)系數(shù)據(jù)庫(kù)增加了數(shù)據(jù)庫(kù)關(guān)聯(lián)信息查詢(xún)的計(jì)算量,但由于本系統(tǒng)并非存在大量的數(shù)據(jù)關(guān)系。故采用關(guān)系數(shù)據(jù)庫(kù)。
各表結(jié)構(gòu)如下:
1.快遞單主表
表3-1 快遞單主表(ExpressForm)
| 名稱(chēng) | 字段 | 數(shù)據(jù)類(lèi)型 | 自增 | Null |
| 本表主鍵 | PKID | Int | 是 | 否 |
| 快遞單編號(hào) | ExpressNo | Varcahr(50) | 否 | 否 |
| 發(fā)貨客戶編號(hào) | SendCustomerNo | Varcahr(50) | 否 | 否 |
| 發(fā)貨客戶 | SendCustomer | Varcahr(50) | 否 | 否 |
| 發(fā)貨客戶電話 | SendCustomerTel | Varcahr(50) | 否 | 否 |
| 發(fā)貨客戶地址 | SendCustomerAddr | Varcahr(200) | 否 | 否 |
| 收貨客戶編號(hào) | ReceiveCuetomerNo | Varcahr(50) | 否 | 否 |
| 收貨客戶 | ReceiveCustomer | Varcahr(50) | 否 | 否 |
| 收貨客戶電話 | ReceiveCustomerTel | Varcahr(50) | 否 | 否 |
| 收貨客戶地址 | ReceiveCustomerAddr | Varcahr(200) | 否 | 否 |
| 發(fā)貨日期 | SendDate | datetime | 否 | 否 |
| 發(fā)貨地址 | SendAddr | Varcahr(200) | 否 | 否 |
| 快遞費(fèi) | ExpressFee | Money | 否 | 否 |
| 備注 | Remark | Varcahr(200) | 否 | 可 |
?
2. 快遞單事件表
表3-2 快遞單事件表(ExpressFormEvent)
| 名稱(chēng) | 字段 | 數(shù)據(jù)類(lèi)型 | 自增 | Null |
| 本表主鍵 | PKID | Int | 是 | 否 |
| 快遞單主表主鍵 | ExpressFormPKID | Int | 否 | 否 |
| 事件名稱(chēng) | EventName | Varchar(200) | 否 | 否 |
| 備注 | Remark | Varchar(200) | 否 | 可 |
| 發(fā)生時(shí)間 | OccurTime | datetime | 否 | 否 |
?
3.快遞費(fèi)用查詢(xún)表
表3-3 快遞費(fèi)用查詢(xún)表(ExpressFee)
| 名稱(chēng) | 字段 | 數(shù)據(jù)類(lèi)型 | 自增 | Null |
| 本表主鍵 | PKID | Int | 是 | 否 |
| 出發(fā)地與目的地 | DepartureAndDestination | Varcahr(200) | 否 | 否 |
| 元/公斤 | RMBPerKG | Float | 否 | 否 |
?
4.用戶實(shí)名認(rèn)證表
表3-4 用戶實(shí)名認(rèn)證表(Verified)
| 名稱(chēng) | 字段 | 數(shù)據(jù)類(lèi)型 | 自增 | Null |
| 本表主鍵 | PKID | Int | 是 | 否 |
| 姓名與電話 | NameAndTel | Varcahr(200) | 否 | 否 |
| 二維碼信息 | QRCodeMessage | Varcahr(200) | 否 | 否 |
?
?
4???代碼編程
?
系統(tǒng)架構(gòu)設(shè)計(jì)完畢,通過(guò)之前的系統(tǒng)功能分析就可以在 B/S 各端上進(jìn)行代碼編程[9]。由于篇幅所限,只以一個(gè)功能在各端的實(shí)現(xiàn)作為示例說(shuō)明。功能的實(shí)際請(qǐng)求在系統(tǒng)中的代碼流程如圖4-1所示。
圖4-1 代碼流程圖
?
4.1? 微信端
微信官方要求菜單代碼必須是 Json 格式, menu.json 的代碼實(shí)現(xiàn)如下圖4-2所示:
圖4-2 menu.json
Json格式是以鍵值對(duì)的形式來(lái)進(jìn)行更規(guī)范化網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)囊环N標(biāo)準(zhǔn)格式。如代碼示意圖所示,button代表該json文件攜帶的信息為按鈕菜單的格式,相當(dāng)于數(shù)據(jù)結(jié)構(gòu)中樹(shù)結(jié)構(gòu)的根,其下每一個(gè)花括號(hào)代表了每一個(gè)子樹(shù),name代表的是按鈕名稱(chēng),type代表消息類(lèi)型,url代表消息請(qǐng)求所跳轉(zhuǎn)的網(wǎng)址。
4.2? 服務(wù)器端
服務(wù)器端共有兩個(gè)文件, form.html 與 service.php 。 form.html 用作信息的錄入, service.php 用作數(shù)據(jù)庫(kù)的交互。
下面以 EnterInformation.html 與EnterInformation.php 為例。
EnterInformation.html的核心代碼實(shí)現(xiàn)如下圖4-3所示:
?
圖4-3EnterInformation.html
Html 是用來(lái)進(jìn)行頁(yè)面展示并指定整個(gè)數(shù)據(jù)請(qǐng)求的格式的代碼。由于手機(jī)端與電腦端的尺寸不同,以及頁(yè)面的美觀所需,引入CSS 樣式表指定整個(gè) Html 頁(yè)面的樣式。
由于這部分代碼涉及到的相關(guān)知識(shí)過(guò)多且無(wú)深化講解的必要,因此略去不表。
EnterInformation.php 的核心代碼實(shí)現(xiàn)如下圖4-4所示:
圖4-4 EnterInformation.php
使用 mysql_connect() 函數(shù)進(jìn)行數(shù)據(jù)庫(kù)連接測(cè)試,執(zhí)行后考慮到便于調(diào)試,使用mysql_error()輸出錯(cuò)誤信息,相當(dāng)于處理異常。未免整個(gè)數(shù)據(jù)請(qǐng)求在網(wǎng)絡(luò)傳輸時(shí)字符集混亂,使用 mysql_query() 設(shè)定字符集為UTF-8 。最后通過(guò) mysql_select_db() 函數(shù)選擇指定的數(shù)據(jù)庫(kù)。至此數(shù)據(jù)庫(kù)連接完畢。
所有的編號(hào),例如快遞編號(hào)都使用 rand() 函數(shù)產(chǎn)生一個(gè)隨機(jī)數(shù)進(jìn)行分配。再使用date()函數(shù)獲取當(dāng)前時(shí)間戳并指定格式。
生成一個(gè) sql 語(yǔ)句字符串,由于 php 對(duì)字符串的處理支持占位符,可以便捷的直接更改一個(gè)字符串,避免了在修改字符串時(shí)使用冗長(zhǎng)的代碼及這個(gè)過(guò)程中帶來(lái)的錯(cuò)誤。
直接使用 $_POST 全局變量獲取 EnterInformation.html 轉(zhuǎn)過(guò)來(lái)的 HTTP 請(qǐng)求參數(shù)并與上文中提到的sql 語(yǔ)句字符串直接合并,完成了一個(gè)動(dòng)態(tài)的 sql 語(yǔ)句。
最后使用 mysql_query() 函數(shù)執(zhí)行 sql 語(yǔ)句,完成數(shù)據(jù)錄入。并用 mysql_close()函數(shù)釋放數(shù)據(jù)庫(kù)連接資源。
4.3? 數(shù)據(jù)庫(kù)端
由于存在多張表,未免重復(fù),以快遞單主表為例進(jìn)行說(shuō)明
建表語(yǔ)句如圖4-5所示:
圖4-5 建表語(yǔ)句
Mysql 的建表語(yǔ)句與其他主流數(shù)據(jù)庫(kù)類(lèi)似,但略微有所不同。設(shè)定字段自增時(shí)需用 auto_increment 關(guān)鍵字指明,另外為使字符集統(tǒng)一建表語(yǔ)句后指明字符集為 UTF-8。
?
5???系統(tǒng)完成
?
將代碼正確的部署到 B/S 各端,并對(duì)系統(tǒng)使用進(jìn)行功能測(cè)試。
5.1? 代碼部署
5.1.1???微信端
微信端的代碼通過(guò)微信官方的微信公眾平臺(tái)接口調(diào)試工具部署[10],如圖5-1所示。將 menu.json放入"body"文本框中,點(diǎn)擊"檢查問(wèn)題"進(jìn)行菜單生成。
圖5-1 微信端部署
最底部的 "Requestsuccessful" 表示菜單已成功生成。微信端菜單如圖5-2所示。
圖5-2 微信端菜單
5.1.2???服務(wù)器端
服務(wù)器端代碼需要放置在指定的目錄下才能使微信端的網(wǎng)絡(luò)請(qǐng)求得到正確的響應(yīng)。將所有的 .html 文件與 .php 文件放在服務(wù)器的 /var/www/html 路徑下。通過(guò)電腦端瀏覽器查看是否部署成功。
圖5-3 瀏覽器頁(yè)面
120.25.68.197為阿里云分配的服務(wù)器 IP 地址。通過(guò)訪問(wèn)IP 地址,服務(wù)器會(huì)調(diào)取 index.php 進(jìn)行響應(yīng)。而 index.php 中的內(nèi)容就是字符串“Hello World!!!!”。 圖5-3表明.html 文件與 .php 文件已經(jīng)部署在服務(wù)器上,并且可以響應(yīng)網(wǎng)絡(luò)請(qǐng)求。
5.1.3???數(shù)據(jù)庫(kù)端
在 MySQL 數(shù)據(jù)庫(kù)中使用建表語(yǔ)句進(jìn)行建表。并輸入查看表結(jié)構(gòu)的語(yǔ)句進(jìn)行檢測(cè)。
Desc ExpressForm;
結(jié)果如圖5-4所示,建表完成。
圖5-4查看表結(jié)構(gòu)
5.2? 功能測(cè)試
未免行文繁瑣,不一一展開(kāi)所有功能,只使用具有代表性的寄快遞中的填寫(xiě)信息功能進(jìn)行說(shuō)明。
用戶在手機(jī)微信端菜單上點(diǎn)擊“寄快遞”,再點(diǎn)擊“填寫(xiě)信息”。如圖5-5所示。
圖5-5 操作圖1
用戶在表格中填寫(xiě)快遞詳細(xì)信息。如圖5-6所示。
圖5-6 操作圖2
點(diǎn)擊提交,服務(wù)器會(huì)將用戶輸入信息發(fā)送至數(shù)據(jù)庫(kù)保存,并返回輸入信息以及快遞單號(hào)以供用戶核實(shí)備用。如圖5-7所示。
圖5-7 操作圖3
最后在數(shù)據(jù)庫(kù)端查詢(xún)數(shù)據(jù)是否成功錄入,顯示數(shù)據(jù)庫(kù)已成功將數(shù)據(jù)保存,快遞服務(wù)商已可以用數(shù)據(jù)生成其定制快遞單,免去了二次錄入的重復(fù)操作。如圖5-8所示。
圖5-8 操作圖4
基于以上結(jié)果,可以看到本設(shè)計(jì)已成功運(yùn)行并可投入實(shí)際使用。
?
6???設(shè)計(jì)總結(jié)
快遞行業(yè)的發(fā)展重心已逐步由物流環(huán)節(jié)移向數(shù)據(jù)環(huán)節(jié),而基于微信平臺(tái)的“快遞超市”指的是在擁有大用戶基數(shù)的微信平臺(tái)上進(jìn)行的對(duì)新的快遞數(shù)據(jù)管理進(jìn)行的一種新的探索。本文在分析快遞和微信的現(xiàn)狀后,提出了將二者結(jié)合的構(gòu)想。通過(guò)對(duì)用戶和快遞服務(wù)商的需求與功能分析,設(shè)計(jì)了系統(tǒng)結(jié)構(gòu)及運(yùn)行環(huán)境,最后成功完成代碼,并可以在微信上進(jìn)行使用。
通過(guò)本系統(tǒng),說(shuō)明快遞的數(shù)據(jù)管理可以依托大用戶基數(shù)的應(yīng)用,將快遞的數(shù)據(jù)管理的端口交給用戶,這不僅為快遞服務(wù)商解決了一道難題,而解決難題后,快遞服務(wù)商所提供的服務(wù)品質(zhì)的提升也使用戶享受到了更加優(yōu)質(zhì)的服務(wù)。
此外本次設(shè)計(jì)也提供了一種便捷而安全的身份認(rèn)證方式的思路來(lái)代替原有的快遞簽收身份認(rèn)證方式,為用戶省去了攜帶證件的不便。
本系統(tǒng)的實(shí)際使用邀請(qǐng)了一些日常使用快遞頻率較高者進(jìn)行使用,系統(tǒng)的使用反饋得到了多數(shù)人的肯定,并且,通過(guò)郵件詢(xún)問(wèn)快遞服務(wù)商后,發(fā)現(xiàn)快遞服務(wù)商也在嘗試包含微信在內(nèi)的各種平臺(tái),來(lái)實(shí)現(xiàn)本系統(tǒng)設(shè)計(jì)的初衷。說(shuō)明了本次設(shè)計(jì)所具有的實(shí)際價(jià)值。
研究過(guò)程難免存在些許瑕疵,但在一定程度上本設(shè)計(jì)具有通用性。本設(shè)計(jì)為不同的生活功能如何進(jìn)行合理有效的結(jié)合進(jìn)行了探討,為類(lèi)似研究打下了基礎(chǔ)。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
參考文獻(xiàn)
[1] 徐曉宇.從傳播學(xué)角度解構(gòu)微信的信息傳播模式[J]. 新媒體研究, 2016, 2(21): 28-29.
[2] 呂超.基于阿里云平臺(tái)的中小企業(yè) MIS 的應(yīng)用研究[D]. 山東大學(xué),2015.
[3] 江立穎.基于 Web 的通用遠(yuǎn)程網(wǎng)絡(luò)教學(xué)平臺(tái)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 碩士論文, 大連理工大學(xué), 大連, 2001.
[4] 侯景華.基于 Apache 的 Web 服務(wù)器性能優(yōu)化和分析[J]. 西安電子科技大學(xué), 西安, 2006.
[5] 何玨飛.基于 php 技術(shù)和三層 B/S 模式的辦公自動(dòng)化系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 天津大學(xué), 2007.
[6] B?ttcher S, Hartel R, Wolters D. S2CX: Fromrelational data via SQL/XML to (Un-)Compressed XML[J]. Information Systems,2016, 56:198-213.
[7] 田超. 基于MySQL的計(jì)算機(jī)網(wǎng)絡(luò)課程雙語(yǔ)教學(xué)平臺(tái)設(shè)計(jì)[D]. 內(nèi)蒙古大學(xué), 2016.
[8] 黃錫偉,畢厚杰. 關(guān)系型數(shù)據(jù)庫(kù)和對(duì)象數(shù)據(jù)庫(kù)范式和操作研究[J]. 小型微型計(jì)算機(jī)系統(tǒng), 1997, 18(11): 61-68.
[9] 黃浪.企業(yè)級(jí)的B/S模式應(yīng)用軟件非功能性需求分析與研究[D]. 廈門(mén)大學(xué), 2008.
[10] 劉厚.微信公眾互動(dòng)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 湖南大學(xué), 2016.
?
致? 謝
此次畢業(yè)設(shè)計(jì)也算是為大學(xué)生活畫(huà)上了一個(gè)句號(hào)。此間我所經(jīng)歷和感受到的將使我受益終生。特別感謝朱老師在我完成畢業(yè)設(shè)計(jì)的過(guò)程中的敦促,使我能夠有效率的完成畢業(yè)設(shè)計(jì)。我生性有些拖沓,有勞老師費(fèi)心。
生命短暫,很多事情也許把握不住,只要思想不因痛苦和快樂(lè)變得慵懶,就是幸事。
?
時(shí)間:2017年5月17日22:30:18
總結(jié)
以上是生活随笔為你收集整理的基于微信平台的“快递超市”设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微信小程序开发者工具上请求能成功,手机预
- 下一篇: 记一次尝试用脚本模拟手柄打游戏(一)