主頁 >  其他 > 口罩預約管理系統——資料庫設計(前端+PHP+MySQL)

口罩預約管理系統——資料庫設計(前端+PHP+MySQL)

2020-09-15 12:35:19 其他

一、背景

2020年的疫情影響了我們的生產生活,政府不斷加大力度聯防聯控,遏制疫情的蔓延勢頭,全國人民共同加入抗擊疫情的戰“疫”隊伍,疫情資訊發布、物資調配保障顯得尤其重要,資訊越詳細,物資保障越充分,公眾的疑慮就越少,“疫情地圖”、“實時資訊”、“口罩預約”的各種 APP、小程式和系統應運而生,不斷規范化,納入疫情發布的官方渠道,這些舉措讓公眾能全方位獲取疫情防控進展的資訊,及時、準確、全面顯得至關重要,

另外,這個小專案也是過去許久,疫情期間也有在市政官方系統預約口罩的經歷,(?,?)沒有中簽過,不過因此對它的預約系統感興趣,考慮自己可以簡單做一個web網站版本的預約管理系統,實作基本功能,也正好課程需要完成一個資料庫設計,然后做一個相對完整的應用系統,所以,這個小專案就此開始,

二、口罩預約管理系統介紹

1、功能模塊及特點

本系統主要任務是實作用戶口罩預約、市政人員(管理員)分配以及快遞員接單配送的比較完整的功能,市政人員(管理員),普通用戶,快遞員這三種用戶權限,功能明確,各自獨立,而又存在著一定的聯系,讓政府更方便地管理、更高效地分配,

具體模塊決議如下:

  1. 普通用戶模塊:創建賬號,登錄系統填寫預約資訊確認提交,查看訂單狀態,修改訂單預約資訊,修改個人注冊資訊,
  2. 市政人員(管理員)模塊:查詢已注冊用戶資訊,修改或洗掉用戶資訊,對用戶的預約訂單進行合理分配,包括審核以及分配快遞員,管理每種型別口罩,查詢庫存數量,合理分配用戶預約的口罩數量,按需求查看訂單的配送狀態,
  3. 快遞員模塊:查看分配到的訂單,選擇接單配送,完成配送選擇關單,按訂單狀態查看訂單,統計完成的訂單數量,

2、系統結構

系統功能結構圖:

三、資料庫設計

在口罩預約管理系統初期階段,我們需要設計好系統存取資料資訊的一個資料庫,資料庫設計也是一個重點難點,完整的資料庫基本滿足設計基本要求,包括資料庫關系模式分析,處理好函式依賴問題,還有關系模式至少滿足第三范式等,學過資料庫系統概論會基本了解這些知識以及它的重要性和難度,

以目前個人能力,這個系統資料庫的建立暫時滿足最基本的要求,初步進行了函式依賴分析,另外根據所需功能,關系模式不是很復雜,第三范式的滿足只存在于部分關系模式中,

我使用的是MySQL資料庫,前期建立資料字典,然后以此進一步建立資料庫及資料表,確定口罩預約管理資料庫關系模式,分析關系模式的函式依賴和范式要求,接下來將具體介紹資料字典、資料模型和概念模型(E-R 圖)

1、資料字典

根據系統功能需求,系統資料庫包含了8個資料表,詳細內容(欄位、資料型別、碼)如下資料字典:

1、admin表

屬性名

資料描述

資料型別

是否為空

備注

work_id

管理員賬號

varchar(32)

不允許

主碼

ad_name

管理員名

varchar(32)

不允許

pwd

密碼

varchar(32)

不允許

phone

電話

varchar(32)

2、users表

屬性名

資料描述

資料型別

是否為空

備注

user_id

用戶賬號

varchar(32)

不允許

主碼

user_name

姓名

varchar(32)

不允許

ID

身份證號

varchar(32)

不允許

pwd

密碼

varchar(32)

不允許

register_date

注冊時間

datetime

3、deliver表

屬性名

資料描述

資料型別

是否為空

備注

deliver_id

賬號

varchar(32)

不允許

主碼

deliver_name

姓名

varchar(32)

不允許

phone

聯系方式

varchar(32)

pwd

密碼

varchar(32)

不允許

4、mask表

屬性名

資料描述

資料型別

是否為空

備注

mask_type

型別號

varchar(32)

不允許

主碼

m_name

名稱

varchar(32)

不允許

remain_num

庫存量

int(11)

不允許

price

價格

int(11)

5、info表

屬性名

資料描述

資料型別

是否為空

備注

order_id

訂單號

varchar(32)

不允許

主碼

user_id

用戶賬號

varchar(32)

不允許

外碼,參照users

user_name

用戶姓名

varchar(32)

不允許

allocate_num

分配數量

int(11)

不允許

phone

聯系方式

varchar(32)

不允許

address

配送地址

varchar(32)

不允許

status

訂單狀態

varchar(32)

不允許

re_date

下單日期

datetime

6、reserve表

屬性名

資料描述

資料型別

是否為空

備注

user_id

預約賬號

varchar(32)

不允許

主碼,參照users

re_date

下單日期

datetime

不允許

主碼

mask_type

型別

varchar(32)

不允許

外碼,參照mask

ID

身份證號

varchar(32)

不允許

r_num

預約數量

int(11)

不允許

ex_date

期望到貨日

date

phone

聯系方式

varchar(32)

address

地址

varchar(32)

7、allocate表

屬性名

資料描述

資料型別

是否為空

備注

work_id

分配人

varchar(32)

不允許

主碼,參照admin

order_id

訂單號

varchar(32)

不允許

主碼,參照order

allocate_time

分配日期

datetime

deliver_id

快遞員

varchar(32)

不允許

主碼,參照deliver

8、take表

屬性名

資料描述

資料型別

是否為空

備注

deliver_id

快遞員賬號

varchar(32)

不允許

主碼,參照deliver

order_id

訂單號

varchar(32)

不允許

主碼,參照order

take_date

接單日期

datetime

finish_date

關單日期

datetime

2、口罩預約資料庫關系模式(資料模型)

各個資料表包含屬性,紅色表示該關系模式的主碼,

管理員 (管理員賬號, 密碼, 管理員姓名, 電話)

用戶 (用戶賬號, 密碼, 用戶姓名, 身份證號)

快遞員 (快遞員賬號, 密碼, 快遞員姓名, 電話, 地址)

口罩 (口罩型別, 倉庫, 存貨量, 單位價格)

訂單資訊 (訂單號, 用戶賬號, 用戶姓名,口罩型別, 已分配數量, 聯系方式, 配 送地址, 訂單狀態, 預約時間)

預約 (用戶帳號, 口罩型別, 預約時間, 期望到貨日期, 預約數量, 電話, 地址)

分配 (理員賬號, 訂單號, 快遞員賬號, 分配日期)

接關單 (快遞員賬號, 訂單號, 快遞員姓名, 接單時間, 關單時間)

3、E-R圖(概念模型)

E-R圖能夠更加直觀的展示資料關系模式之間的聯系,下面則是自己畫的:

這個是建立資料庫后系統生成的:

四、MySQL創建資料庫以及資料表

這個步驟開始對設計好的關系模式在MySQL上部署資料庫以及建立各個資料表,建表代碼如下:

  • 建立資料庫
create database maskorder;
  • admin資料表(管理員表)
create table admin(work_id varchar(32) primary key not null,

                    pwd varchar(32) not null,

                    ad_name varchar(32),

                    phone varchar(32));

  • users資料表(用戶表)
create table admin(work_id varchar(32) primary key not null,
                    pwd varchar(32) not null,
                    ad_name varchar(32),
                    phone varchar(32));
  • delivers資料表(快遞員表)
create table delivers(deliver_id varchar(32) primary key not null,

                    pwd varchar(32) not null,

                    deliver_name varchar(32) not null,

                    phone varchar(32));
  • reserve資料表(用戶預約表)
create table reserve(user_id varchar(32) not null,

                    re_date datetime not null,

                    foreign key (user_id) references users(user_id),

                    primary key(user_id,re_date),

                    ID varchar(32) not null,

                    r_num int not null,

                    ex_date date not null,

                    phone varchar(32) not null,

                    address varchar(32) not null);
  • mask資料表(口罩資訊表)
create table mask(mask_type varchar(32) primary key not null,

                    store varchar(32) not null,

                    remain_num int not null,

                    price int not null);

  • info資料表(訂單表)
create table info(order_id varchar(32) primary key not null,

                    user_id varchar(32) not null,

                    foreign key (user_id) references users(user_id),

                    user_name varchar(32) not null,

                    allocate_num int not null,

                    statue varchar(32) not null,

                    re_date datetime not null,

                    phone varchar(32) not null,

                    address varchar(32) not null );

  • allocate資料表(管理員分配表)
create table allocate(work_id varchar(32) not null,

                      order_id varchar(32) not null,

                      deliver_id varchar(32) not null,

                      allocate_time datetime not null,

                      primary key (work_id,order_id),

                      foreign key (work_id) references admin(work_id),

                      foreign key (order_id) references info(order_id) );

  • take資料表(快遞員接關單表)
create table take(deliver_id varchar(32) not null,

                    order_id varchar(32) not null,

                   deliver_name varchar(32) not null,

                    take_time datetime not null,

                    finish_time datetime not null,

                    primary key (deliver_id,order_id),

                    foreign key (deliver_id) references delivers(deliver_id),

                    foreign key (order_id) references info(order_id) );
  • deli_order視圖(快遞員查看訂單表)
create view deli_order as

        select order_id,mask_type,allocate_num,phone,addresss,statue,re_date

        from info;

五、資料庫設計總結

在系統開發之前,資料庫的設計是首要并且關鍵的一個步驟,對于此系統的資料表,上面介紹的是最后確定的資料表,資料庫設計并不能一蹴而就,這里總結一下我不斷修改的想法程序,

第一次根據系統所需要的資料建立關系模式,在保證函式依賴和無損連接的情況下,將屬性phone、address放入reserve表中,users表和reserve的關系模式滿足了第三范式的要求,起初設計表時候考慮是否將reserve和info合并,后來發現在物理設計和實際場景下,訂單資訊表info由用戶預約后的reserve表生成,并且加入特有的屬性訂單狀態status、口罩分配數量allocate_num和訂單號order_id,

至此從reserve表脫離出來,后期用戶、管理員、快遞員對訂單的查詢的操作,實作了模塊化的處理,不僅減少了表的連接,而且物理操作(前后端編程)更加容易,因為資料庫設計中也要符合物理上的要求,所以關系模式分解為兩個表,雖然增加了部分資料上的冗余,但是保證資訊的模塊化和實際應用的合理性,

在口罩預約管理系統資料庫設計中遇到了這些問題,后來經過了理論上的分析和實際運用,解決了設計上的問題,認識到了資料模型建立的關鍵性,目前該資料庫還可以進一步完善,

這一篇主要講的是口罩預約管理系統定位的功能模塊以及資料庫設計的具體程序,這也是完成這個系統第一階段的完整部分,下一篇將介紹系統前后端的搭建以及資料庫連接,使用到的知識包括前端(HTML+CSS+Javascript)、后端(PHP)和MySQL資料庫的操作,目的是建立簡潔、包含基本功能的(口罩預約管理)應用系統,

本篇的口罩預約管理系統資料庫maskOrder.txt已上傳,可直接匯入本地MySQL資料庫,


我的CSDN博客:https://blog.csdn.net/Charzous/article/details/108576174

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/46693.html

標籤:其他

上一篇:使用Module32First Python2 與Python3 回傳值不相同

下一篇:呼叫父類實體方法時出現的例外如何解決

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more