張苗苗,羅雅過,呂嘉琦
(西安文理學院,陜西 西安 710065)
微信作為國內最大的社交平臺,已經變成人們日常生活和交往的重要組成部分。而微信小程序作為一款區別于PC端和APP端的新物種,借助于微信的用戶流量,更適合于連接線下用戶。
“飯來了”微信小程序線上訂餐系統就是為實現用戶通過小程序對餐品信息進行瀏覽、檢索、訂購和騎手對訂單進行搶單接單,以及方便學校食堂各窗口對用戶、餐品、訂單的信息進行管理所開發的網絡應用軟件。該系統能夠較好地滿足線上訂餐的基本要求,具備省時、省事、省心等特點,有較高的實用價值[1]。
為了能夠方便、快捷、有效地完成餐品購買以及發送取餐信息,該系統需要用戶、騎手、商家注冊登錄;為了能及時增加、查詢、修改、刪除餐品的信息和用戶的訂單,需要有餐品和訂單管理模塊;為了方便管理員管理,還需要設計系統管理模塊;為了方便計算財務,分配薪資,實現盈利,該系統還需要設計財務管理模塊。
“飯來了”線上訂餐系統總體架構如圖1所示。前臺系統可以瀏覽店鋪,查看食堂各窗口菜品信息,進行留言;登錄注冊頁面分為商家、用戶、騎手3類。后臺系統分為商家、用戶、騎手、管理員4個模塊,不同模塊管理員給予不同權限。線上訂餐管理系統主要的功能模塊分為:訂單、餐品、系統和財務管理模塊四大模塊。
2.2.1 概念模型設計
根據需求分析,本系統需要建立數據庫的實體模型主要有:用戶、騎手、商家、管理員、餐品、訂單等。下面以重要的實體模型(用戶、餐品、訂單)為例進行設計說明。
(1)用戶(user)。
用戶實體的屬性主要包括:用戶編號、用戶名稱、用戶密碼、用戶性別、用戶年齡、注冊時間、聯系電話、校園卡賬號,其中用戶編號為主碼(見圖2)。

圖1 “飯來了”線上訂餐系統總體架構
(2)餐品(food)。
餐品實體的屬性主要包括:餐品編號,餐品名稱,餐品價格,餐品圖片,餐品介紹,錄入時間和點擊次數等。其中餐品編號為主碼(見圖3)。

圖2 用戶實體

圖3 餐品實體
(3)訂單(order)。
訂單實體的屬性主要包括:訂單編號,下單時間,餐品數量,訂單金額,配送箱號,訂單狀態等。其中訂單編號和下單時間共同作為主碼(見圖4)。
2.2.2 邏輯模型設計
數據庫的邏輯結構設計過程,就是把上面數據庫的概念結構轉化為數據庫系統所支持的實際數據模型[2],根據轉換遵循的一般規則,該系統有6個關系模式,下面只介紹重要實體的關系數據模式。
(1)用戶(user)R1:用戶編號,用戶名稱,登錄密碼,聯系電話,校園卡號,性別,年齡,注冊時間,管理員編號。
(2)商家(business)R2:商家編號,登錄密碼,聯系電話,商家名稱,店鋪樓層,窗口號碼,管理員編號。

圖4 訂單實體
(3)餐品(food)R3:餐品編號,餐品名稱,餐品價格,餐品圖片,餐品介紹,錄入時間,點擊次數,商家編號。
(4)訂單(order)R4:訂單編號,下單時間,用戶編號,餐品編號,商家編號,騎手編號,餐品數量,訂單金額,配送箱號,訂單狀態。
根據范式判斷規則可知,餐品、訂單關系表都屬于BCNF,用戶關系表R1、商家關系表R2都屬于2NF[3]。因此將用戶、商家關系表優化為BCNF。優化結果如下:
R11:用戶編號,用戶名稱,登錄密碼,聯系電話,注冊時間,校園卡號,管理員編號;
R12:校園卡號,性別,年齡;
R21:商家編號,登錄密碼,聯系電話,商家名稱,管理員編號;
R22:商家名稱,店鋪樓層,窗口號碼。
“飯來了”在線點餐微信小程序客戶端采用了小程序技術開發,通過服務器端進行數據管理,數據庫保存在My SQL中,利用HTTP協議,傳遞JOSN類型的數據進行交互。實現了用戶注冊登錄、騎手信息管理、商家信息管理、餐品信息管理、訂單信息管理等功能。其中數據庫的設計過程就是一個從抽象到具體的思維加工過程,需要逐步完成數據庫的需求分析、抽象、設計、實現、優化。