呂良 蘇鋒
海軍航空大學(xué)青島校區(qū),中國·山東 青島 266041
在目前“互聯(lián)網(wǎng)+”的信息化背景下,智能化應(yīng)用已經(jīng)滲透到生活中的每一個(gè)領(lǐng)域。根據(jù)人們生活快節(jié)奏的特點(diǎn),構(gòu)建提高人們生活質(zhì)量有效節(jié)約時(shí)間的智能場(chǎng)地預(yù)約管理系統(tǒng)迫在眉睫。論文主要基于B/S 結(jié)構(gòu)模式,運(yùn)用WMAP開發(fā)架構(gòu),結(jié)合Dreamweaver、Fireworks 等開發(fā)工具,設(shè)計(jì)并實(shí)現(xiàn)了一套基于PHP 的智能場(chǎng)地預(yù)約管理系統(tǒng)。系統(tǒng)的運(yùn)行不僅提高了場(chǎng)地的使用效率,使場(chǎng)地管理更加信息化、智能化,同時(shí)為人們提供了更加便捷的生活、工作平臺(tái),對(duì)專業(yè)建設(shè)和人才培養(yǎng)具有一定的實(shí)踐意義和應(yīng)用價(jià)值。
軟件采用B/S 結(jié)構(gòu),前后端分離的方式開發(fā)實(shí)現(xiàn),前端在這里主要實(shí)現(xiàn)人機(jī)交互,實(shí)現(xiàn)會(huì)議查詢、會(huì)議預(yù)約界面顯示、按鈕交互的功能,后端更多是與數(shù)據(jù)庫進(jìn)行交互以處理相應(yīng)的業(yè)務(wù)邏輯。需要考慮的是如何實(shí)現(xiàn)功能、數(shù)據(jù)的存取、平臺(tái)的穩(wěn)定性與性能等。
本系統(tǒng)前端瀏覽器界面采用HTML、CSS、JavaScript經(jīng)典的前端三劍客編程語言來實(shí)現(xiàn)的,后端數(shù)據(jù)交互主語言采用的是PHP,數(shù)據(jù)庫采用的是MySQL 關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。
這里重點(diǎn)說一下本系統(tǒng)基于PHP 程序工作的總體流程。PHP 的運(yùn)行原理就是Apache(Web 服務(wù)器)、PHP、瀏覽器三者之間的協(xié)作過程:
①當(dāng)用戶在瀏覽器地址中輸入要訪問的PHP頁面文件名,然后回車就會(huì)觸發(fā)這個(gè)PHP 請(qǐng)求,并將請(qǐng)求傳送化支持PHP 的Web 服務(wù)器[1]。
②Web 服務(wù)器接受這個(gè)請(qǐng)求,并根據(jù)其后綴進(jìn)行判斷如果是一個(gè)PHP 請(qǐng)求,Web 服務(wù)器從硬盤或內(nèi)存中取出用戶要訪問的PHP 應(yīng)用程序,并將其發(fā)送給PHP 引擎程序。
③PHP 引擎程序?qū)?huì)對(duì)Web 服務(wù)器傳送過來的文件從頭到尾進(jìn)行掃描并根據(jù)命令從后臺(tái)讀取,處理數(shù)據(jù),并動(dòng)態(tài)地生成相應(yīng)的HTML頁面。
④PHP 引擎將生成HTML頁面返回給Web 服務(wù)器。Web 服務(wù)器再將HTML頁面返回給客戶端瀏覽器,最后一個(gè)完整的頁面基于通過瀏覽器展現(xiàn)在我們眼前。
數(shù)據(jù)庫采MySQL 數(shù)據(jù)庫,分為三個(gè)表,分別為用戶表、預(yù)約表、內(nèi)容表。用戶表主要用來存儲(chǔ)管理員賬號(hào)密碼信息,預(yù)約表用于存放用戶提交的預(yù)約信息,是一個(gè)臨時(shí)表。內(nèi)容表存放管理員審核過后的預(yù)約信息。核心技術(shù)到一個(gè)MySQL view 虛擬表視圖,是一個(gè)虛擬邏輯表,本身并不包含數(shù)據(jù),視圖中的字段數(shù)據(jù)就是來自一個(gè)或多個(gè)數(shù)據(jù)庫中的真實(shí)的表中的字段,其優(yōu)點(diǎn)是可以快速訪問兩表或多表連接所組成的數(shù)據(jù)。有時(shí)要訪問表間連接所組成的數(shù)據(jù)集,可以把查詢出來的數(shù)據(jù)集定義成視圖,可以幫助快速訪問所需的數(shù)據(jù)[2]。語法格式為CREATE VIEW <視圖名> AS
本次開發(fā)沒有采用前端框架開發(fā),只是采用原生的HTML、CSS、JavaScript 語言開發(fā),因此在開發(fā)時(shí)要考慮瀏覽器的兼容性,由于IE 瀏覽器早期版本存在兼容性問題,因此在這里采用谷歌瀏覽器或者火狐瀏覽器進(jìn)行開發(fā)。
前端分為用戶管理模塊和功能模塊兩部分,用戶管理模塊實(shí)現(xiàn)用戶權(quán)限的管理,功能模塊實(shí)現(xiàn)預(yù)約查詢功能。
4.1.1 預(yù)約部分
預(yù)約表單主要展示用戶需要預(yù)約填寫的基本信息,預(yù)約日期、預(yù)約場(chǎng)地以及預(yù)約具體時(shí)間需要在用戶提交的表單的時(shí)候進(jìn)行前端的判斷,這里需要自定義設(shè)計(jì)一個(gè)提交判斷函數(shù),通過PHP 后端查詢數(shù)據(jù)庫里已預(yù)約的場(chǎng)地及日期時(shí)間通過JSON 數(shù)據(jù)格式取到前端,我們?cè)诖硕x為JsonStr,然后在制定觸發(fā)判斷條件,只有當(dāng)用戶提交的預(yù)約場(chǎng)地和JsonStr 中場(chǎng)地?cái)?shù)據(jù)相同時(shí),才進(jìn)行場(chǎng)地預(yù)約日期和具體時(shí)間的判斷,預(yù)約場(chǎng)地不同不需要進(jìn)行后續(xù)判斷,判斷時(shí)邏輯步驟:判斷預(yù)約日期和JsonStr 中日期是否有沖突,如果相同,則進(jìn)一步判斷具體開始結(jié)束時(shí)間,預(yù)約開始時(shí)間應(yīng)當(dāng)小于JsonStr 中相同場(chǎng)地相同日期的開始時(shí)間或者大于等于結(jié)束時(shí)間,預(yù)約結(jié)束時(shí)間應(yīng)該小于等于JsonStr 中開始時(shí)間或者大于結(jié)束時(shí)間[3]。判斷函數(shù)在提交時(shí)觸發(fā),保證預(yù)約的場(chǎng)地日期具體時(shí)間是唯一的。此外,為增強(qiáng)軟件使用友好性,加入表單信息輸入提示及判斷主要信息是否輸入功能。
4.1.2 查詢部分
查詢表單主要是方便用戶在預(yù)約使用之前進(jìn)行相關(guān)場(chǎng)地使用情況的查詢,以便找到合適的場(chǎng)地及預(yù)約時(shí)間,PHP連接數(shù)據(jù)庫將查詢當(dāng)日之后的預(yù)約相關(guān)數(shù)據(jù)通過JSON 格式傳到前端,按表單設(shè)計(jì)展示在查詢界面中,這里增加了按條件查詢功能,設(shè)計(jì)查詢函數(shù),主體為通過PHP 執(zhí)行SQL 語句來實(shí)現(xiàn)where 不同條件的查詢,函數(shù)設(shè)置載入查詢條件接口的形參,將查詢條件構(gòu)造成數(shù)組,然后通過循環(huán)遍歷將數(shù)組條件作為實(shí)參載入函數(shù)進(jìn)行不同情況的查詢。
用戶管理模塊主要是實(shí)現(xiàn)預(yù)約軟件管理端功能的,前臺(tái)用戶提交的數(shù)據(jù)被存入數(shù)據(jù)庫臨時(shí)預(yù)約表中,管理者在這個(gè)模塊中可以實(shí)現(xiàn)對(duì)預(yù)約的審核通過,管理預(yù)約的增刪查改,實(shí)現(xiàn)功能權(quán)限[4]。用戶管理模塊還可以實(shí)現(xiàn)文件的上傳功能,主要通過PHP 內(nèi)置函數(shù)move_uploaded_file 來實(shí)現(xiàn)。
后端主要負(fù)責(zé)數(shù)據(jù)的處理,前端與數(shù)據(jù)庫的交互[5]。本設(shè)計(jì)主要依靠PHP 語言進(jìn)行前后端交互、數(shù)據(jù)處理,用戶界面提交的預(yù)約數(shù)據(jù)通過PHP 解析處理,然后PHP 訪問MySQL 數(shù)據(jù)庫,將預(yù)約數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫臨時(shí)預(yù)約表中,設(shè)計(jì)審核函數(shù),主要作用為管理員審核通過后,PHP 操作數(shù)據(jù)庫將臨時(shí)預(yù)約表中的內(nèi)容添加到日程表中并將此內(nèi)容從預(yù)約表中刪除,前端查詢部分展示是通過PHP 從數(shù)據(jù)庫中獲取相應(yīng)的數(shù)據(jù),采用JSON 格式發(fā)送給前端界面。
該預(yù)約軟件采用模塊化設(shè)計(jì),以PHP 作為核心開發(fā)語言,將軟件的實(shí)現(xiàn)分解為前端和后端兩部分,JSON 作為數(shù)據(jù)交互橋梁,提高了軟件開發(fā)的伸縮性和擴(kuò)展性。