




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGEi中國石油大學(xué)(北京)現(xiàn)代遠(yuǎn)程教育畢業(yè)設(shè)計(jì)(論文)PAGEXV拼車自助服務(wù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)摘要隨著社會的發(fā)展與環(huán)境變遷,人們的通勤拼車的需求愈發(fā)旺盛。但拼車時(shí)缺乏良好的信息渠道和溝通方式,無形中增加了拼車成本。本拼車自助服務(wù)系統(tǒng)應(yīng)運(yùn)而生,為用戶提供便捷的檢索和溝通方式,提高了信息檢索效率,降低了溝通成本。本系統(tǒng)客戶端使用微信小程序開發(fā),系統(tǒng)接口服務(wù)則由微信小程序的云開發(fā)支撐。微信小程序客戶端讓用戶通過微信搜索即用,為用戶省卻繁瑣的軟件安裝和注冊步驟。微信小程序云開發(fā)提供了云函數(shù)、數(shù)據(jù)庫、存儲和云調(diào)用四大基礎(chǔ)能力,系統(tǒng)不需要注冊域名備案、部署環(huán)境和系統(tǒng)運(yùn)維,直接基于小程序平臺API進(jìn)行核心業(yè)務(wù)開發(fā),大大節(jié)省了項(xiàng)目開發(fā)上線周期。本系統(tǒng)是在進(jìn)行充分的需求分析后,力求業(yè)務(wù)完整性和實(shí)用性的前提下,遵循系統(tǒng)需求調(diào)研、系統(tǒng)分析、系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)部署四個(gè)主要階段進(jìn)行實(shí)施。關(guān)鍵詞:自助拼車;微信小程序;云開發(fā);云函數(shù);PaaS目錄第一章緒論 11.1現(xiàn)狀與背景 11.2系統(tǒng)實(shí)現(xiàn)目標(biāo) 1第二章系統(tǒng)需求分析 22.1系統(tǒng)可行性分析 22.1.1技術(shù)可行性 22.1.2社會可行性 22.1.3經(jīng)濟(jì)可行性 32.2系統(tǒng)功能需求分析 32.3系統(tǒng)非功能需求分析 4第三章系統(tǒng)開發(fā)工具與運(yùn)行環(huán)境 53.1開發(fā)技術(shù)簡介 53.1.1微信小程序 53.1.2云開發(fā) 53.2開發(fā)工具與開發(fā)環(huán)境 63.3測試環(huán)境與生產(chǎn)環(huán)境 7第四章系統(tǒng)概要設(shè)計(jì)與簡述 84.1系統(tǒng)概述 84.2系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 84.3系統(tǒng)模塊設(shè)計(jì) 94.3.1用戶消息模塊 94.3.2系統(tǒng)信息模塊 94.3.3拼車圈子模塊 94.3.4拼車預(yù)約模塊 9第五章系統(tǒng)數(shù)據(jù)庫設(shè)計(jì) 115.1數(shù)據(jù)庫設(shè)計(jì)概述 115.2邏輯結(jié)構(gòu)設(shè)計(jì) 115.3物理結(jié)構(gòu)設(shè)計(jì) 12第六章系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 136.1創(chuàng)建小程序項(xiàng)目 136.2用戶消息模塊 136.3系統(tǒng)信息模塊 146.4拼車圈子模塊 156.5拼車預(yù)約模塊 15第七章系統(tǒng)測試 177.1測試目的 177.2測試方法 177.3測試用例 17第八章拓展與總結(jié) 188.1系統(tǒng)拓展 188.2設(shè)計(jì)總結(jié) 18參考文獻(xiàn) 19致謝 錯(cuò)誤!未定義書簽。附錄 錯(cuò)誤!未定義書簽。中國石油大學(xué)(北京)現(xiàn)代遠(yuǎn)程教育畢業(yè)設(shè)計(jì)(論文)中國石油大學(xué)(北京)現(xiàn)代遠(yuǎn)程教育畢業(yè)設(shè)計(jì)(論文)PAGEPAGEI第一章緒論1.1現(xiàn)狀與背景隨著社會的發(fā)展,傳統(tǒng)的公交、地鐵等通勤方式已經(jīng)不能滿足大家的出行要求,拼車的需求越來越迫切?!暗蔚雾橈L(fēng)車”的出現(xiàn),讓這些問題得到緩解,但其因營利性有償拼車的合法性等問題被迫下線。伴隨拼車需求的增加,各種“拼車群”也多了起來。用戶通過社交工具發(fā)布拼車消息,尋找到匹配信息后再私下溝通確認(rèn)?!捌窜嚾骸逼窜囐M(fèi)用相對低廉,群友彼此相識安全性稍高,固定的地點(diǎn)和行駛路線讓時(shí)效更精準(zhǔn)。但“拼車群”內(nèi)信息冗雜、沒有實(shí)時(shí)狀態(tài),導(dǎo)致用戶檢索信息過程繁瑣,信息時(shí)效滯后不準(zhǔn)確,私下確認(rèn)也增加了時(shí)間成本。1.2系統(tǒng)實(shí)現(xiàn)目標(biāo)本系統(tǒng)旨在通過微信小程序?yàn)橛脩籼峁┍憬莸钠窜囆畔l(fā)布和檢索方式。用戶無需下載和注冊,通過微信搜索小程序打開即用。用戶使用微信賬號登錄后,即可發(fā)布和檢索拼車信息。當(dāng)檢索到匹配信息時(shí),用戶可以提交預(yù)約申請,系統(tǒng)會給被預(yù)約用戶發(fā)送微信模板消息,促進(jìn)其及時(shí)進(jìn)行確認(rèn)操作。用戶可隨時(shí)取消已提交的預(yù)約,以及申請撤銷已確認(rèn)的預(yù)約,申請撤銷預(yù)約需要對應(yīng)關(guān)聯(lián)用戶進(jìn)行確認(rèn)操作。為便于用戶關(guān)注某些具有類似于相同線路等共同特征的拼車信息,系統(tǒng)設(shè)計(jì)了“拼車圈子”來聚合這類信息,讓用戶無需輸入條件即可快速查找這類信息。用戶在使用過程中遇到系統(tǒng)問題或不良用戶后,可以提交系統(tǒng)反饋或進(jìn)行舉報(bào)。管理員用戶通過小程序登錄后,可以維護(hù)服務(wù)城市、拼車站點(diǎn)、拼車線路和拼車圈子等信息,以及查看和處理系統(tǒng)反饋和舉報(bào)信息。系統(tǒng)要在不依賴額外服務(wù)器和域名的情況下,通過微信小程序云開發(fā)提供的云函數(shù)、數(shù)據(jù)庫和存儲等基礎(chǔ)能力,實(shí)現(xiàn)本系統(tǒng)所有功能。中國石油大學(xué)(北京)現(xiàn)代遠(yuǎn)程教育畢業(yè)設(shè)計(jì)(論文)中國石油大學(xué)(北京)現(xiàn)代遠(yuǎn)程教育畢業(yè)設(shè)計(jì)(論文)PAGEPAGEI第二章系統(tǒng)需求分析2.1系統(tǒng)可行性分析系統(tǒng)可行性分析是在系統(tǒng)調(diào)查的基礎(chǔ)上,對將要開發(fā)的系統(tǒng)從技術(shù)、經(jīng)濟(jì)等方面分析和研究其具備的必要性和可行性??陀^、科學(xué)的可行性分析,對在決策時(shí)做出果斷、正確的決定有著重大的意義[1]。2.1.1技術(shù)可行性本系統(tǒng)客戶端使用微信小程序開發(fā),系統(tǒng)后臺服務(wù)由小程序云開發(fā)支撐。微信小程序是基于微信開發(fā)的具有豐富組件和API的高效應(yīng)用開發(fā)框架,其提供的組件和API能夠滿足本系統(tǒng)業(yè)務(wù)需求,而且開發(fā)速度相對原生APP要快。云開發(fā)則是指包含云函數(shù)、數(shù)據(jù)庫、存儲和云調(diào)用的微信小程序基礎(chǔ)能力,其是以騰訊云的PaaS服務(wù)為基礎(chǔ),為用戶提供的無服務(wù)器運(yùn)算(Serverlesscomputing)服務(wù)。系統(tǒng)后臺接口的運(yùn)行環(huán)境由專業(yè)團(tuán)隊(duì)保障,確保了服務(wù)良好的穩(wěn)定性。云函數(shù)支持動態(tài)負(fù)載均衡,能實(shí)現(xiàn)毫秒級彈性伸縮,這讓系統(tǒng)具備了良好的伸縮能力。基于上述分析,本系統(tǒng)基于微信小程序和云開發(fā)能力進(jìn)行開發(fā),具備良好技術(shù)可行性。2.1.2社會可行性通勤距離的增加和生活質(zhì)量的提升,使得拼車通勤的需求越來越多。拼車行為可分有償和無償拼車,有償拼車又分為營利性和非營利性有償拼車。滴滴“順風(fēng)車”屬于營利性有償拼車,其費(fèi)用遠(yuǎn)超過司機(jī)實(shí)際支出,運(yùn)營方還從中提取抽成,且承運(yùn)車輛基本沒有營運(yùn)手續(xù),所以滴滴“順風(fēng)車”屬于非法營運(yùn)。本系統(tǒng)考慮的拼車需求是指具有相同或相近線路的人,由于車牌、限號、費(fèi)用等原因共同搭乘私家機(jī)動車通勤的行為。此類需求中,沒有運(yùn)營方從中抽取提成,而且支付費(fèi)用與實(shí)際損耗費(fèi)用相當(dāng),屬于有償收費(fèi)但不存在營利性質(zhì),所以可以定義為非營利性有償拼車。由于非營利性有償拼車的車主不以運(yùn)營為主,也不以營利為目的,搭乘人支付費(fèi)用是對車主的補(bǔ)償而非勞務(wù)費(fèi),這種行為顯然不能界定為非法營運(yùn)[2]。本系統(tǒng)僅僅是作為該類拼車需求信息的發(fā)布和檢索平臺,只是為用戶提供了拼車的便利,未從中收取任何費(fèi)用,也就不存在違反相關(guān)法律的行為,系統(tǒng)具備社會可行性。2.1.3經(jīng)濟(jì)可行性本系統(tǒng)設(shè)計(jì)目的是為了給用戶提供拼車信息共享平臺,平臺完全免費(fèi)不收取用戶費(fèi)用。系統(tǒng)上線后暫時(shí)不開展運(yùn)營任務(wù),運(yùn)營成本可以忽略不計(jì)。因?yàn)橄到y(tǒng)接口服務(wù)是由云開發(fā)支撐,理論上不需要人工運(yùn)維,其還提供一定配額的免費(fèi)資源,在用戶較少的情況下,本系統(tǒng)運(yùn)維成本也基本可以忽略。當(dāng)用戶數(shù)量增加,需要運(yùn)營人員和云資源費(fèi)用時(shí),暫定通過系統(tǒng)開通捐贈渠道募集運(yùn)營費(fèi)用。如有必要,還可以微信開放的廣告能力等方式獲取資金來維持資金來源。綜上所述,本系統(tǒng)在經(jīng)濟(jì)上也具備一定可行性。2.2系統(tǒng)功能需求分析系統(tǒng)作為自助服務(wù)平臺,普通用戶通過微信登錄小程序,能夠發(fā)布拼車信息,檢索或在圈子查看拼車意向信息,對匹配信息發(fā)起預(yù)約申請。預(yù)約未確認(rèn)時(shí)能進(jìn)行取消,預(yù)約可被他人拒絕或通過。預(yù)約確認(rèn)后能申請撤銷,以及被確認(rèn)和拒絕撤銷。管理員用戶維護(hù)開通城市、拼車站點(diǎn)和拼車圈子信息,查看和處理用戶提交的反饋和舉報(bào)信息。本系統(tǒng)所需的主要功能見圖(2-1)。圖2-1系統(tǒng)功能性需求列表2.3系統(tǒng)非功能需求分析小程序的交互是不應(yīng)忽視的重要組成部分,好的交互設(shè)計(jì)會使用戶在使用過程中產(chǎn)生愉悅的感受[3]。所以系統(tǒng)小程序在界面上應(yīng)該簡潔友好,各個(gè)功能通俗易懂易操作,并符合大多數(shù)用戶已有的使用習(xí)慣。系統(tǒng)在提供滿足用戶需求的各項(xiàng)功能的前提下,應(yīng)該盡力確保系統(tǒng)的正確性、健壯性和可靠性。系統(tǒng)還要有良好的性能,暫定在5個(gè)并發(fā)下,普通查詢響應(yīng)時(shí)間不應(yīng)超過200ms,數(shù)據(jù)變更等操作不應(yīng)超過600ms。系統(tǒng)還應(yīng)確保數(shù)據(jù)權(quán)限配置合理,保障用戶和系統(tǒng)信息的安全。中國石油大學(xué)(北京)現(xiàn)代遠(yuǎn)程教育畢業(yè)設(shè)計(jì)(論文)中國石油大學(xué)(北京)現(xiàn)代遠(yuǎn)程教育畢業(yè)設(shè)計(jì)(論文)PAGEPAGEI第三章系統(tǒng)開發(fā)工具與運(yùn)行環(huán)境3.1開發(fā)技術(shù)簡介3.1.1微信小程序微信小程序則是微信生態(tài)下的一種新的開放能力,其代碼主要由JSON配置文件、WXML模板文件、WXSS樣式文件和JS腳本文件組成。JSON配置文件分為全局和頁面級配置文件,若存在相同屬性,頁面級配置優(yōu)先級更高。WXML文件用來描述頁面結(jié)構(gòu),其與HTML非常相似又不盡相同,WXML支持?jǐn)?shù)據(jù)綁定,并新增了具有元素控制能力的特殊屬性。WXSS支持大部分CSS屬性和擇器,增加了自動換算的尺寸單位rpx和vh、vw。JS腳本文件用以處理業(yè)務(wù)邏輯,并能通過API來調(diào)起微信的開放能力[4]。微信小程序?yàn)殚_發(fā)者提供了豐富的組件和API,通過微信小程序開發(fā)工具,開發(fā)者可以快速開發(fā)出能在微信內(nèi)獲取和傳播、具有原生應(yīng)用性能的小應(yīng)用,其運(yùn)行效率和流暢程度接近原生APP,用戶無需安裝即開即用,關(guān)閉后系統(tǒng)基本無殘余,節(jié)省用戶存儲資源[5]。微信小程序開發(fā)主要使用JavaScript語言,其與常規(guī)網(wǎng)頁開發(fā)比較類似,降低了前端開發(fā)者的學(xué)習(xí)成本。依托小程序開發(fā)標(biāo)準(zhǔn)進(jìn)行開發(fā),應(yīng)用就會自動適配不同操作系統(tǒng)使用要求,節(jié)省了維護(hù)成本提高了迭代效率[6]。3.1.2云開發(fā)云開發(fā)是微信小程序是以騰訊云的PaaS服務(wù)為基礎(chǔ),為開發(fā)者提供的云函數(shù)、數(shù)據(jù)庫、存儲和云調(diào)用四大基礎(chǔ)能力。PaaS(平臺即服務(wù))實(shí)現(xiàn)了業(yè)務(wù)應(yīng)用和業(yè)務(wù)平臺的解耦,提供了通用的數(shù)據(jù)庫服務(wù)、業(yè)務(wù)服務(wù)和技術(shù)服務(wù),且滿足平臺開發(fā)應(yīng)用的自動部署和應(yīng)用托管[7]。(1)云函數(shù)云函數(shù)是運(yùn)行在云端的后臺函數(shù)代碼,開發(fā)者在編寫完成后,通過開發(fā)者工具一鍵上傳部署,小程序通過云函數(shù)API即可調(diào)用。通過云函數(shù)提供的調(diào)用上下文,開發(fā)者不需了解復(fù)雜的鑒權(quán)機(jī)制便可獲取天然可信任的用戶登錄狀態(tài)。(2)數(shù)據(jù)庫通過查看小程序官方文檔[4]、MySQL文檔[8]和MongoDB文檔[9],可以發(fā)現(xiàn)云開發(fā)數(shù)據(jù)庫是與MongoDB相似,都是JSON文檔數(shù)據(jù)庫,相對于關(guān)系型數(shù)據(jù)庫的概念對比見表(3-1)。云開發(fā)數(shù)據(jù)庫通MongoDB操作語法非常相似,但其數(shù)據(jù)類型相較于MongoDB的BSON數(shù)據(jù)類型精簡了許多,讓用戶無須在字段數(shù)據(jù)類型選型上耗費(fèi)過多時(shí)間。表3-1關(guān)系型數(shù)據(jù)庫與文檔數(shù)據(jù)庫概念對應(yīng)關(guān)系(3)存儲存儲指的是云開發(fā)為開發(fā)者提供的云存儲空間。開發(fā)者可以在小程序端和云函數(shù)端通過平臺API,方便快捷地實(shí)現(xiàn)上傳文件和具有權(quán)限控制的下載操作。(4)云調(diào)用基于云開發(fā)提供的云函數(shù)能力,小程序云開發(fā)支持開發(fā)者直接使用小程序開放接口,通過云函數(shù)直接進(jìn)行獲取小程序碼、發(fā)送客服消息和發(fā)送模板信息等操作,是云函數(shù)能力的補(bǔ)充。云開發(fā)弱化了后端概念,開發(fā)者無需搭建服務(wù)器,通過平臺API即可調(diào)用云端服務(wù)進(jìn)行核心業(yè)務(wù)開發(fā),實(shí)現(xiàn)了小程序快速上線和更新迭代。同時(shí),云開發(fā)兼容開發(fā)者已使用的云服務(wù),開發(fā)者可以通過平臺提供的HTTPAPI調(diào)用云開發(fā)的云端服務(wù)。3.2開發(fā)工具與開發(fā)環(huán)境在本系統(tǒng)開發(fā)過程中,主要使用微信開發(fā)者工具。微信開發(fā)者工具集模擬器、編輯器、調(diào)試器和云開發(fā)控制臺于一體,能幫助開發(fā)者簡單高效地開發(fā)和調(diào)試微信小程序。模擬器能夠模擬常用機(jī)型,在開發(fā)者保存編譯代碼后,能及時(shí)展示實(shí)際效果。開發(fā)者在編輯器中進(jìn)行開發(fā),能智能提示代碼補(bǔ)全,并能良好的格式化代碼,提交了編輯效率。調(diào)試器支持模擬器和真機(jī)調(diào)試模式,為開發(fā)者提供了便捷的調(diào)試功能,見圖(3-1)。圖3-1微信開發(fā)者工具開發(fā)界面云開發(fā)控制臺還提供了資源監(jiān)控、數(shù)據(jù)庫和存儲維護(hù)、云函數(shù)云端測試等功能。除此以外,工具還提供了素材管理、代碼管理、多賬戶調(diào)試等豐富功能。這讓開發(fā)者在本地進(jìn)行小程序和云函數(shù)的開發(fā)調(diào)試變得簡單,讓開發(fā)效率更為高效。3.3測試環(huán)境與生產(chǎn)環(huán)境在云開發(fā)創(chuàng)建的環(huán)境之間是相互隔離的,每個(gè)環(huán)境對應(yīng)一整套獨(dú)立的數(shù)據(jù)庫、存儲、云函數(shù)資源,云開發(fā)允許開發(fā)者擁有兩個(gè)環(huán)境。在開發(fā)過程中,開通兩個(gè)環(huán)境分別用于測試和生產(chǎn)。每個(gè)環(huán)境都有唯一標(biāo)識,在微信小程序調(diào)用云開發(fā)環(huán)境初始化方法時(shí),通過傳入唯一標(biāo)識來啟用指定環(huán)境。在開發(fā)完畢后,先將云函數(shù)發(fā)布到測試環(huán)境,測試通過后再發(fā)布到正式環(huán)境,以確保線上環(huán)境的穩(wěn)定運(yùn)行。中國石油大學(xué)(北京)現(xiàn)代遠(yuǎn)程教育畢業(yè)設(shè)計(jì)(論文)中國石油大學(xué)(北京)現(xiàn)代遠(yuǎn)程教育畢業(yè)設(shè)計(jì)(論文)PAGEPAGEI第四章系統(tǒng)概要設(shè)計(jì)與簡述4.1系統(tǒng)概述在系統(tǒng)進(jìn)行功能性需求分析以后,通過對總結(jié)出來的功能進(jìn)行具體化,可以將系統(tǒng)概述如下。微信用戶無需登錄即可以在小程序中查看拼車意向信息,但只有通過微信授權(quán)登錄后才能進(jìn)行其他功能。為提高用戶溝通效率,要求用戶在發(fā)布拼車意向信息前綁定手機(jī)號碼。當(dāng)用戶找到匹配的拼車意向信息時(shí)可以發(fā)起預(yù)約申請,待對方確認(rèn)預(yù)約后即預(yù)約成功,在指定時(shí)間點(diǎn)到達(dá)指定地點(diǎn)就可以拼車出行,同時(shí)還可以在該拼車行程內(nèi)給其他拼車用戶發(fā)送留言消息。在預(yù)約未被確認(rèn)時(shí),用戶可以向其他拼車意向繼續(xù)發(fā)送預(yù)約申請;對方確認(rèn)預(yù)約但沒有到預(yù)約乘車時(shí)間前,彼此都可以申請撤銷預(yù)約,但需要對方確認(rèn)后才能撤銷成功,若撤銷未被確認(rèn)則需要雙方進(jìn)行溝通協(xié)商。用戶能看見歷史拼車記錄,關(guān)注自己喜歡的圈子,以及提交系統(tǒng)反饋信息和舉報(bào)指定用戶。管理員用戶登錄小程序后,可以看到系統(tǒng)管理入口。通過系統(tǒng)管理界面,可以維護(hù)服務(wù)城市、拼車站點(diǎn)、拼車線路信息以及各種拼車圈子的信息;可以查看用戶提交的系統(tǒng)反饋和舉報(bào)信息,針對具體情況進(jìn)行處理并回復(fù)用戶處理結(jié)果。4.2系統(tǒng)結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)使用微信小程序和云開發(fā)進(jìn)行開發(fā),微信小程序?yàn)榭蛻舳?,云開發(fā)提供的云函數(shù)、數(shù)據(jù)庫和存儲等基礎(chǔ)能力則提供了類似服務(wù)器的運(yùn)行環(huán)境,使用云函數(shù)可以調(diào)用發(fā)送短信等第三方服務(wù),本系統(tǒng)當(dāng)前結(jié)構(gòu)如圖(4-1)。圖4-1本系統(tǒng)架構(gòu)圖就目前系統(tǒng)功能而言,無需額外自行部署服務(wù)器,如有需要自行部署服務(wù)器,可隨時(shí)將系統(tǒng)結(jié)構(gòu)進(jìn)行拓展,如圖(4-2)。圖4-2系統(tǒng)拓展架構(gòu)圖4.3系統(tǒng)模塊設(shè)計(jì)在確定系統(tǒng)結(jié)構(gòu)以后,我們需要對各個(gè)系統(tǒng)子系統(tǒng)中各個(gè)模塊提供的功能進(jìn)一步詳細(xì)劃分。4.3.1用戶消息模塊用戶消息模塊主要有用戶賬號、留言消息和舉報(bào)反饋等業(yè)務(wù)功能,具體功能見圖(4-3)。圖4-3用戶消息模塊功能4.3.2系統(tǒng)信息模塊系統(tǒng)信息模塊包含城市信息、拼車站點(diǎn)和拼車路線等信息維護(hù)功能,詳細(xì)功能詳見圖(4-4)。圖4-4系統(tǒng)信息模塊功能4.3.3拼車圈子模塊拼車圈子模塊提供新建、編輯和檢索拼車圈子,以及關(guān)注和取消關(guān)注圈子等功能,詳見圖(4-5)。圖4-5拼車圈子模塊功能4.3.4拼車預(yù)約模塊拼車預(yù)約模塊分為拼車意向、預(yù)約拼車和撤銷預(yù)約,主要有發(fā)布和取消拼車意向,提交、確認(rèn)和拒絕預(yù)約,申請、確認(rèn)和拒絕撤銷預(yù)約等功能,詳見圖(4-6)。圖4-6拼車預(yù)約模塊功能中國石油大學(xué)(北京)現(xiàn)代遠(yuǎn)程教育畢業(yè)設(shè)計(jì)(論文)中國石油大學(xué)(北京)現(xiàn)代遠(yuǎn)程教育畢業(yè)設(shè)計(jì)(論文)PAGEPAGEI第五章系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)5.1數(shù)據(jù)庫設(shè)計(jì)概述在對系統(tǒng)進(jìn)行模塊劃分和具體功能的細(xì)化分析以后系統(tǒng)中的實(shí)體和屬性也已基本確定。通過分析系統(tǒng)實(shí)體關(guān)系,設(shè)計(jì)系統(tǒng)數(shù)據(jù)庫概念模型,繪制出系統(tǒng)整體E-R圖,見圖(5-1)。圖5-1系統(tǒng)整體E-R圖5.2邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì),是指將概念模型設(shè)計(jì)成果轉(zhuǎn)換成數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型,也就是將E-R圖表示的概念模型轉(zhuǎn)換為任意一種具體數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型。在此過程中,我們要考慮具體數(shù)據(jù)庫系統(tǒng)所支持的數(shù)據(jù)類型、功能和運(yùn)行性能。在參考整體E-R圖后,兼顧云開發(fā)數(shù)據(jù)庫的存儲以及性能,將實(shí)體和實(shí)體間的聯(lián)系進(jìn)行轉(zhuǎn)換得到以下關(guān)系模式(“”表示主碼,“”表示外鍵)。用戶信息(用戶編碼,用戶昵稱,用戶性別,用戶頭像,微信openId,手機(jī)號碼,注冊時(shí)間,所在城市,所在省份,用戶類型,用戶狀態(tài))城市信息(城市編碼,城市名稱,所屬省份,開通狀態(tài),開通時(shí)間)拼車站點(diǎn)(站點(diǎn)編碼,城市編碼,站點(diǎn)名稱,站點(diǎn)描述,地理位置,開通狀態(tài),開通時(shí)間)拼車線路(線路編碼,線路名稱,線路描述,起點(diǎn)城市編碼,終點(diǎn)城市編碼,線路狀態(tài),開通時(shí)間)拼車圈子(圈子編碼,圈子名稱,圈子描述,關(guān)聯(lián)實(shí)體類型,關(guān)聯(lián)實(shí)體編碼,圈子狀態(tài),創(chuàng)建時(shí)間)圈子關(guān)注狀態(tài)(圈子編碼,關(guān)注者編碼,關(guān)注狀態(tài),最后關(guān)注時(shí)間,最后取消關(guān)注時(shí)間)拼車意向(意向編碼,線路編碼,起始站點(diǎn)編碼,終到站點(diǎn)編碼,最早出發(fā)時(shí)間,最晚出發(fā)時(shí)間,意向類型,意向座位數(shù),剩余座位數(shù),意向狀態(tài),創(chuàng)建用戶編碼,創(chuàng)建時(shí)間,取消時(shí)間)預(yù)約記錄(預(yù)約編碼,車找人意向編碼,人找車意向編碼,預(yù)約類型,預(yù)約狀態(tài),拒絕預(yù)約原因,申請人編碼,確認(rèn)人編碼,申請時(shí)間,確認(rèn)時(shí)間,取消時(shí)間)撤銷預(yù)約記錄(記錄編碼,預(yù)約編碼,撤銷原因,拒絕撤銷原因,申請撤銷人編碼,確認(rèn)撤銷人編碼,申請撤銷時(shí)間,確認(rèn)撤銷時(shí)間)留言消息(消息編碼,發(fā)送者編碼,消息類型,關(guān)聯(lián)實(shí)體編碼,消息內(nèi)容,發(fā)送時(shí)間)消息閱讀狀態(tài)(記錄編碼,消息編碼,接受者編碼,閱讀狀態(tài),接收時(shí)間,閱讀時(shí)間)舉報(bào)反饋信息(信息編碼,提交用戶編碼,關(guān)聯(lián)實(shí)體編碼,信息類型,信息標(biāo)題,詳細(xì)內(nèi)容,截圖鏈接,提交時(shí)間,處理狀態(tài),處理時(shí)間,處理結(jié)果)驗(yàn)證碼發(fā)送記錄(記錄編碼,驗(yàn)證碼,有效時(shí)長,短信編碼,手機(jī)號碼,微信openid,發(fā)送時(shí)間)5.3物理結(jié)構(gòu)設(shè)計(jì)云開發(fā)的數(shù)據(jù)庫是JSON文檔數(shù)據(jù)庫,屬于一種非關(guān)系型數(shù)據(jù)庫。關(guān)系型數(shù)據(jù)庫數(shù)據(jù)模型簡單,支持復(fù)雜查詢,但不支持?jǐn)?shù)據(jù)復(fù)雜嵌套,數(shù)據(jù)變更靈活性差[10];非關(guān)系型數(shù)據(jù)庫數(shù)據(jù)模型豐富,容易擴(kuò)展,但缺乏統(tǒng)一的標(biāo)準(zhǔn),不需要像關(guān)系型數(shù)據(jù)庫那樣聲明表結(jié)構(gòu)。通過邏輯結(jié)構(gòu)設(shè)計(jì)得到了本系統(tǒng)的關(guān)系模式,根據(jù)關(guān)系模式可以設(shè)計(jì)本系統(tǒng)的關(guān)系性數(shù)據(jù)庫表結(jié)構(gòu),然后演化得到系統(tǒng)數(shù)據(jù)庫各個(gè)集中存在的字段和索引。范式設(shè)計(jì)可以減少數(shù)據(jù)庫冗余,減小數(shù)據(jù)存儲空間,降低了維護(hù)難度,但性能會隨之降低[11]。為了提高數(shù)據(jù)庫性能,本系統(tǒng)進(jìn)行了部分反范式設(shè)計(jì),例如冗余部分字段等。在實(shí)際開發(fā)過程中,云開發(fā)數(shù)據(jù)庫只需要在控制臺創(chuàng)建集合和建立適當(dāng)?shù)乃饕纯?。為方便系統(tǒng)維護(hù),現(xiàn)將各集合信息整理成表,如表(5-1),全部表格詳見附錄。第六章系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)6.1創(chuàng)建小程序項(xiàng)目通過安裝微信開發(fā)者工具,然后使用微信公眾平臺小程序賬戶下的AppID,即可創(chuàng)建使用“小程序?云開發(fā)”提供后臺服務(wù)的小程序項(xiàng)目,見圖(6-1)。圖6-1小程序配置云開發(fā)在開發(fā)者工具云開發(fā)控制臺,可以清楚看到當(dāng)前小程序資源使用情況,并在線對云開發(fā)提供的數(shù)據(jù)庫、存儲和云函數(shù)進(jìn)行在線操作,見圖(6-2)。圖6-2云開發(fā)控制臺6.2用戶消息模塊用戶消息子模塊包含用戶賬戶、留言消息和舉報(bào)反饋相關(guān)功能。其中,用戶賬戶涉及到微信授權(quán)登錄、綁定手機(jī)號碼、取消微信登錄、注冊用戶列表和凍結(jié)注冊用戶等功能。用戶首次打開小程序會跳到授權(quán)登錄頁,該頁面使用微信小程序“open-data”標(biāo)簽快速獲取用戶昵稱和頭像。用戶在該頁面可以授權(quán)登錄,也能在免登錄查看拼車信息列表。普通用戶點(diǎn)擊授權(quán)登錄后跳轉(zhuǎn)到拼車信息列表,管理員用戶則會停留在當(dāng)前頁,頁面會展示出拼車信息列表和系統(tǒng)管理入口。底部導(dǎo)航欄使用自定義模板開發(fā),先定義單個(gè)導(dǎo)航按鈕模板,然后引用按鈕模板定義導(dǎo)航欄模板,通過不同頁面?zhèn)鲄Q定最終導(dǎo)航欄信息,代碼見表(6-1)。表6-1自定義模板實(shí)現(xiàn)導(dǎo)航欄續(xù)表6-1續(xù)表6-1圖6-3自定義模板導(dǎo)航欄效果圖各個(gè)頁面在加載時(shí)都會校驗(yàn)用戶是否登錄,所有未登錄用戶會跳轉(zhuǎn)到登錄頁進(jìn)行授權(quán)登錄校驗(yàn),登錄頁支持登錄跳轉(zhuǎn)路徑參數(shù),當(dāng)該參數(shù)存在時(shí),無論何種用戶授權(quán)登陸成功后都直接跳轉(zhuǎn)到指定路徑頁面,用戶校驗(yàn)登錄流程見圖(6-4)。圖6-4校驗(yàn)登錄流程圖登錄頁面使用WXML的button標(biāo)簽創(chuàng)建“授權(quán)登錄”按鈕,將按鈕標(biāo)簽的open-type屬性值設(shè)置為“getUserInfo”后,小程序在用戶授權(quán)后即可獲取到CloudID。將CloudID作為頂層參數(shù)調(diào)用云函數(shù),云函數(shù)接收到的CloudID會被替換為對應(yīng)的用戶信息,不需要進(jìn)行信息校驗(yàn)和解密。用戶點(diǎn)擊授權(quán)登錄按鈕后,相關(guān)業(yè)務(wù)流程時(shí)序圖如圖(6-5)。圖6-5授權(quán)登錄時(shí)序圖綁定手機(jī)號碼時(shí),本系統(tǒng)通過使用云函數(shù)來調(diào)用第三方短信服務(wù)接口,實(shí)現(xiàn)給用戶發(fā)送驗(yàn)證碼短信的功能。具體編碼過程中,在云函數(shù)中引入了request依賴包,并進(jìn)行了簡單的Premise改造。相關(guān)云函數(shù)代碼見表(6-2)。表6-2發(fā)送短信驗(yàn)證碼相關(guān)代碼取消微信登錄和凍結(jié)注冊用戶都是比較常規(guī)的數(shù)據(jù)更新操作,用戶列表使用到了微信小程序的“scroll-view”組件,該組件給“上拉加載”和“下拉刷新”功能的實(shí)現(xiàn)提供了極大便利,本文將在信息模塊部分詳細(xì)講解該組件的使用。6.3系統(tǒng)信息模塊當(dāng)管理員用戶登錄小程序后,在導(dǎo)航欄可以看見系統(tǒng)管理,本模塊所有功能基本都在該菜單下。系統(tǒng)信息模塊主要是對城市信息、拼車站點(diǎn)和拼車線路的維護(hù),主要涉及到的是微信小程序表單提交和數(shù)據(jù)庫操作,而且實(shí)現(xiàn)方式和具體代碼都非常類似。本節(jié)主要以拼車站點(diǎn)列表為例,詳細(xì)講解使用微信小程序的“scroll-view”組件實(shí)現(xiàn)具有上拉加載和下拉刷新功能的列表的過程。拼車站點(diǎn)列表使用了“scroll-view”組件,通過“wx:for”可以使用列表數(shù)據(jù)重復(fù)渲染組6.4拼車圈子模塊拼車圈子模塊分為圈子信息和關(guān)注圈子等功能,其中圈子信息是與系統(tǒng)信息維護(hù)功能代碼基本一致,這里不對這些功能進(jìn)行累述。開發(fā)關(guān)注和取消關(guān)注時(shí),通過使用小程序組件的方式,快速開發(fā)出了側(cè)滑展現(xiàn)關(guān)注和取消關(guān)注按鈕的功能,部分代碼見表(6-5)。表6-5圈子列表相關(guān)部分代碼通過使用組件,用戶向左滑動未關(guān)注圈子時(shí)顯示關(guān)注按鈕,向左側(cè)滑動的是未關(guān)注圈子時(shí)正則顯示關(guān)注按鈕,見圖(6-7)。圖6-7圈子列表效果圖6.5拼車預(yù)約模塊拼車預(yù)約模塊包含與拼車意向、預(yù)約拼車和撤銷預(yù)約等相關(guān)的功能。拼車意向由用戶提交發(fā)布需求進(jìn)入發(fā)布狀態(tài)后,用戶可以申請取消將需求取消。其他用戶申請預(yù)約被確認(rèn)后需求就會被部分預(yù)約,部分預(yù)約時(shí)用戶可以手動結(jié)束使需求提前終止。當(dāng)需求全部預(yù)約確認(rèn)后,需求則完成預(yù)約。當(dāng)有預(yù)約被撤銷時(shí),拼車需求的狀態(tài)也會變化,詳細(xì)狀態(tài)圖見圖(6-8),相關(guān)的拼車預(yù)約記錄狀態(tài)見圖(6-9)。圖6-8拼車需求狀態(tài)圖圖6-9拼車預(yù)約記錄狀態(tài)圖在用戶發(fā)布拼車需求時(shí),采用小程序的Form表單組件進(jìn)行提交,這樣系統(tǒng)會記錄提交表單的formId,以便在接收到其他用戶預(yù)約時(shí)或發(fā)生其它重大狀態(tài)變化時(shí),能通過微信給用戶推送消息通知,用戶發(fā)布拼車需求界面效果如圖(6-10),部分云函數(shù)代碼見表(6-6)圖6-10發(fā)布需求和拼車預(yù)約界面圖表6-6預(yù)約拼車相關(guān)部分代碼中國石油大學(xué)(北京)現(xiàn)代遠(yuǎn)程教育畢業(yè)設(shè)計(jì)(論文)PAGE20中國石油大學(xué)(北京)現(xiàn)代遠(yuǎn)程教育畢業(yè)設(shè)計(jì)(論文)PAGEPAGEI第七章系統(tǒng)測試7.1測試目的軟件測試是一種設(shè)計(jì)輸出與預(yù)期輸出比較的過程,是促進(jìn)提交軟件正確性、完整性、安全性和質(zhì)量的過程。軟件測試是保證軟件可靠性的最重要方法,為了保證軟件性能和功能上的要求,在系統(tǒng)開發(fā)完成后,為保證系統(tǒng)業(yè)務(wù)能夠按照功能需求正常運(yùn)轉(zhuǎn),系統(tǒng)性能和穩(wěn)定性能達(dá)到需求標(biāo)準(zhǔn),對其進(jìn)行測試是必不可少的[12]。7.2測試方法本系統(tǒng)的測試分為單元測試、接口測試和業(yè)務(wù)測試。單元測試由開發(fā)者在項(xiàng)目開發(fā)過程中編寫單元測試用例自測。由于云函數(shù)可以通過微信開發(fā)者工具直接調(diào)用,所以接口測試時(shí)可以直接使用該工具進(jìn)行測試。又因?yàn)樵坪瘮?shù)支持HTTPAPI進(jìn)行觸發(fā),所以我們也可以通過請求HTTPAPI進(jìn)行測試。業(yè)務(wù)測試則由測試工程師通過連接開發(fā)版小程序,直接連接測試環(huán)境云開發(fā)服務(wù)進(jìn)行測試。接口測試保證單個(gè)接口的正確性,而業(yè)務(wù)流程測試則可以驗(yàn)證本小程序全流程的準(zhǔn)確性。7.3測試用例通過對照本系統(tǒng)功能設(shè)計(jì),本系統(tǒng)測試用例主要有以下幾大類:1.需要輸入?yún)?shù)的接口,需要考慮參數(shù)不全、參數(shù)類型錯(cuò)誤等問題;2.需要返回結(jié)果的,返回結(jié)果是否準(zhǔn)確無誤,與數(shù)據(jù)庫是否相符;3.小程序展示信息是否準(zhǔn)確,加載有無異常。第八章拓展與總結(jié)8.1系統(tǒng)拓展本系統(tǒng)在設(shè)計(jì)之初,主要目的是為用戶提供方便的拼車信息檢索和溝通平臺,雖然大多數(shù)用戶都是彼此熟識安全性就較高,但安全保障機(jī)制仍然處于缺失狀態(tài),后續(xù)系統(tǒng)可以針對用戶數(shù)據(jù),系統(tǒng)實(shí)行車主和乘客互相評分,構(gòu)建基于用戶業(yè)務(wù)數(shù)據(jù)和交互歷史的評價(jià)體系,讓用戶更好地規(guī)避拼車風(fēng)險(xiǎn),保障自己的安全[13]。對于拼車信息平臺而言,拼車信息的點(diǎn)擊數(shù)和回復(fù)數(shù)對拼車成功率有正面影響,可以采取適當(dāng)?shù)墓膭?lì)措施提高點(diǎn)擊數(shù)和回復(fù)數(shù)來增強(qiáng)活躍度[14]。所以,未來在確保用戶安全可控的前提下,可以在某種適當(dāng)?shù)臉I(yè)務(wù)情景下,促進(jìn)用戶分享和傳播小程序,以老拉新促進(jìn)用戶數(shù)量增長,提高用戶需求信息量,進(jìn)而提升用戶拼車成功率。同時(shí),為了提
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025河北省安全員《A證》考試題庫及答案
- 二零二五年度智能制造入股合同協(xié)議書
- 2025年度農(nóng)業(yè)科技企業(yè)員工借調(diào)與農(nóng)業(yè)技術(shù)推廣合同
- 2025年度個(gè)體工商戶合伙協(xié)議范文與投資融資及財(cái)務(wù)規(guī)劃協(xié)議
- 2025年度征收城市老舊危房房屋拆遷補(bǔ)償協(xié)議
- 2025年度人事專員勞動合同(附員工培訓(xùn)服務(wù)內(nèi)容)
- 2025年度文化產(chǎn)業(yè)發(fā)展勞動合同法規(guī)范與創(chuàng)意人才合同
- 2025年度個(gè)人租賃市場租賃合同電子簽名合同
- 2025年度健康養(yǎng)生館店鋪承包合作協(xié)議
- 2025年度太陽能光伏發(fā)電站機(jī)電安裝服務(wù)協(xié)議
- WTE朗文英語2B 單詞卡片
- 初三物理復(fù)習(xí)計(jì)劃詳細(xì)計(jì)劃
- 汽車懸架概述
- 中藥飲片處方審核培訓(xùn)課件
- 心房顫動的教學(xué)查房課件
- 周圍靜脈輸液操作并發(fā)癥的預(yù)防及處理
- 重大緊急情況的報(bào)告模板
- 二人合伙開寵物店協(xié)議書(5篇)
- 十字相乘法解一元二次方程專題練習(xí)
- 汽車維修競標(biāo)報(bào)價(jià)表格范本
- 2023年3月普通高等學(xué)校招生全國統(tǒng)一考試英語聽力天津卷A(聽力音頻+試題+答案+聽力原文)
評論
0/150
提交評論