數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告
高校學(xué)生宿舍管理系統(tǒng)
目錄
(一)實(shí)驗(yàn)?zāi)康?3
(二) 軟硬件環(huán)境 3
mysql-8.0.22-winx64、Webyog SQLyog 3
(三)實(shí)驗(yàn)設(shè)計(jì)簡(jiǎn)述 3
(四)系統(tǒng)需求分析 3
1. 管理員 3
2. 校區(qū) 3
3. 樓棟 4
4. 樓棟管理員 4
5. 宿舍 4
6. 宿舍報(bào)修 4
7. 學(xué)生 4
(五)概念模型設(shè)計(jì) 4
1. 管理員信息 4
2. 校區(qū)信息 5
3. 樓棟信息 5
4. 樓棟管理員信息 5
5. 宿舍信息 5
6. 宿舍報(bào)修信息 5
7. 學(xué)生信息 5
(六)邏輯模型設(shè)計(jì) 5
(七)物理模型設(shè)計(jì) 6
1.存儲(chǔ)記錄結(jié)構(gòu)設(shè)計(jì) 6
2.建立索引 9
3. 建立視圖 9
(八)表的創(chuàng)建 10
1. 建表sql語句 10
2. 實(shí)現(xiàn)列、行及參照完整性 12
(九)實(shí)驗(yàn)數(shù)據(jù)示例:測(cè)試 13
1. 數(shù)據(jù)操縱(增) 13
2.?dāng)?shù)據(jù)操縱(改) 19
3. 數(shù)據(jù)操縱(查) 19
(十)設(shè)計(jì)存儲(chǔ)過程、函數(shù)、觸發(fā)器 22
1. 設(shè)計(jì)存儲(chǔ)過程 22
2. 函數(shù) 24
3. 觸發(fā)器 26
(一)實(shí)驗(yàn)?zāi)康?br> 作為一名大學(xué)在校生,發(fā)現(xiàn)學(xué)校的宿舍管理模式依舊是以前的用紙筆登記記錄,對(duì)于師生、宿管使用起來,學(xué)校管理極其不方便,于是我們希望開發(fā)一個(gè)高校宿舍管理系統(tǒng),本文主要是對(duì)數(shù)據(jù)庫(kù)的設(shè)計(jì)、測(cè)試及可行性分析。最終實(shí)現(xiàn)疫情當(dāng)下的“網(wǎng)上解決問題”的愿望,以及方便宿舍管理人員的工作和廣大學(xué)生,提高其工作效率。
根據(jù)高校學(xué)生宿舍管理系統(tǒng)的要求,通過系統(tǒng)需求分析、概念模型設(shè)計(jì)、邏輯模型設(shè)計(jì)、物理模型設(shè)計(jì)等全過程完成高校宿舍管理系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)。
(二)軟硬件環(huán)境
mysql-8.0.22-winx64、Webyog SQLyog
(三)實(shí)驗(yàn)設(shè)計(jì)簡(jiǎn)述
宿舍管理系統(tǒng)主要是通過提供高校的學(xué)生信息和宿舍管理信息之間的關(guān)系,建立一個(gè)高效率的宿舍管理系統(tǒng)。其中包括校區(qū)信息、樓棟信息、宿舍信息、學(xué)生信息、樓棟管理員信息以及宿舍事故信息。該系統(tǒng)可以通過學(xué)生信息的查找快速找到學(xué)生所對(duì)應(yīng)的宿舍信息,以及宿舍所有的信息。還包括學(xué)生信息的添加、修改、刪除及查詢等以及宿舍信息的添加、刪除、修改、查詢??梢酝ㄟ^查找樓棟查找該樓所包含的所有學(xué)生信息,反之,通過學(xué)生信息也可以查找到學(xué)生所在宿舍樓及宿舍號(hào)的信息。
后續(xù)我們將準(zhǔn)備使用Redis,key-value數(shù)據(jù)庫(kù)進(jìn)行改進(jìn),因?yàn)镽edis支持主從同步。數(shù)據(jù)可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,從服務(wù)器可以是關(guān)聯(lián)其他從服務(wù)器的主服務(wù)器。這使得Redis可執(zhí)行單層樹復(fù)制。存盤可以有意無意的對(duì)數(shù)據(jù)進(jìn)行寫操作。由于完全實(shí)現(xiàn)了發(fā)布/訂閱機(jī)制,使得從數(shù)據(jù)庫(kù)在任何地方同步樹時(shí),可訂閱一個(gè)頻道并接收主服務(wù)器完整的消息發(fā)布記錄。同步對(duì)讀取操作的可擴(kuò)展性和數(shù)據(jù)冗余很有幫助。
另外,創(chuàng)建了一張系統(tǒng)管理員表,默認(rèn)管理員類型type默認(rèn)為0(一般管理員),其中設(shè)置一個(gè)管理員類型type值為1(超級(jí)管理員)。在后續(xù)的改進(jìn)中預(yù)計(jì)會(huì)加入多種功能,超級(jí)管理員會(huì)給一般管理員進(jìn)行權(quán)限管理。
(四)系統(tǒng)需求分析
1.管理員
每位系統(tǒng)管理員都有自己的賬號(hào),密碼。當(dāng)該系統(tǒng)出現(xiàn)系統(tǒng)故障或者需要維修時(shí),系統(tǒng)管理員可以通過自己的賬號(hào)、密碼登陸到系統(tǒng)對(duì)系統(tǒng)漏洞進(jìn)行維修管理。
2.校區(qū)
學(xué)校會(huì)分為兩個(gè)校區(qū),每個(gè)校區(qū)都會(huì)有校區(qū)id、校區(qū)全稱、地址、電話、郵編號(hào)等。
3.樓棟
每棟樓都標(biāo)有宿舍樓的號(hào)碼,而每棟樓都有相應(yīng)的樓層數(shù)目以及寢室數(shù)目。
4.樓棟管理員
每棟宿舍樓的樓棟管理員可以通過系統(tǒng)對(duì)學(xué)生信息、宿舍樓信息、宿舍信息、宿舍事故信息及時(shí)添加、刪除、查詢及修改。而且學(xué)生如果在宿舍中有問題要找宿舍管理員反饋,為了方便快捷可以通過該系統(tǒng)查詢到管理員的信息及時(shí)進(jìn)行反饋。
5.宿舍
宿舍做為該系統(tǒng)中與學(xué)生聯(lián)系密切的一個(gè)主體主要還包含了這些信息:宿舍號(hào),舍長(zhǎng),所在樓號(hào),所在層數(shù),總床位數(shù),實(shí)際人數(shù),空余床位,是否有空調(diào),是否單獨(dú)衛(wèi)浴等,可以通過該系統(tǒng)查找每個(gè)宿舍中每位學(xué)生的個(gè)人信息。
6.宿舍報(bào)修
如果有宿舍的硬件設(shè)施出現(xiàn)問題,則宿舍舍長(zhǎng)可以通過該系統(tǒng)填報(bào)宿舍信息以及宿舍保修信息。而最終的結(jié)果也會(huì)分為兩種:
一、問題解決,則會(huì)有系統(tǒng)提示已解決;
二、問題未解決,則會(huì)顯示“問題正在處理”。
7.學(xué)生
可以通過該系統(tǒng)查詢到學(xué)生自己的信息核對(duì)自己的信息是否在宿舍管理系統(tǒng)中添加成功,如果沒有添加成功或者添加信息有誤則可以通過查找聯(lián)系宿舍管理人員對(duì)其信息進(jìn)行修改。若是宿舍出現(xiàn)突發(fā)事故或是有什么緊急情況,可以通過該系統(tǒng)查詢校區(qū)信息,在該系統(tǒng)中撥打校園報(bào)警電話。各宿舍舍長(zhǎng)通過宿舍信息可以及時(shí)查詢,監(jiān)督校內(nèi)簽到查寢等多個(gè)功能。
(五)概念模型設(shè)計(jì)
數(shù)據(jù)庫(kù)需要表述的信息有以下幾種:
1.管理員信息
2.校區(qū)信息
3.樓棟信息
4.樓棟管理員信息
5.宿舍信息
6.宿舍報(bào)修信息
7.學(xué)生信息
E-R模型
(六)邏輯模型設(shè)計(jì)
通過ER模型到關(guān)系模型的轉(zhuǎn)化,可以得到如下關(guān)系模式:
(1)系統(tǒng)管理員轉(zhuǎn)換 關(guān)系:admin(id,account,password,new_file_name,old_file_name,type)
(2)校區(qū)信息轉(zhuǎn)換為 關(guān)系:campus_info(id,name,address,phone,email)
(3)樓棟實(shí)體集轉(zhuǎn)換為 關(guān)系:build_info(id,number,name,floor_number,dorm_number,campusid)
(4)樓棟管理員信息轉(zhuǎn)換為 關(guān)系:build_admin_info(id,name,sex,phone,dormid,buildid)
(5)宿舍信息轉(zhuǎn)換為 關(guān)系:dorm_info(id,number,chief,floor,bed_number,actual_number,freebed,air_conditioner,remark,buildid,build_adminid)
(6)宿舍報(bào)修信息轉(zhuǎn)換為 關(guān)系:repair_info(id,type,time,reason,solution,remark,dormid)
(7)學(xué)生信息轉(zhuǎn)換為 關(guān)系:student_info(id,name,number,sex,grade,faculty,major,class,phone,enter_time,state,feedback,dormid)
每個(gè)關(guān)系模式的主鍵碼都用加粗并用下劃線標(biāo)出。
關(guān)系模型
一個(gè)校區(qū)信息有n個(gè)樓棟信息,一個(gè)樓棟信息包含n個(gè)宿舍信息,同時(shí)也有一個(gè)樓棟管理員信息,一個(gè)樓棟管理員可以管理n個(gè)宿舍信息,n個(gè)宿舍信息能反饋n個(gè)保修信息,同時(shí)一個(gè)宿舍信息包含n個(gè)學(xué)生信息。
(七)物理模型設(shè)計(jì)
1.存儲(chǔ)記錄結(jié)構(gòu)設(shè)計(jì)
表名:admin
屬 性 含義 數(shù)據(jù)類型/范圍 備注
id 管理員(主鍵) int(10)
account 賬號(hào) varchar(100)
password 密碼 varchar(100)
new_file_name 新頭像名 varchar(100)
old_file_name 舊頭像名 varchar(100)
type 類型 int 0默認(rèn)為一般管理員
表名:campus_info
屬 性 含義 數(shù)據(jù)類型/范圍 備注
id 校區(qū)id(主鍵) int(10)
name 校區(qū)全稱 varchar(100)
address 校區(qū)地址 varchar(100)
phone 電話 varchar(11)
email 郵編號(hào) varchar(100)
表名:build_info
屬 性 含義 數(shù)據(jù)類型/范圍 備注
id 樓棟id(主鍵) int(10)
number 樓號(hào) varchar(100)
name 樓名 varchar(100)
floor_number 總層數(shù) varchar(100)
dorm_number 總宿舍數(shù) varchar(100)
campusid 所屬校區(qū)(外鍵) int
表名:build_admin_info
屬 性 含義 數(shù)據(jù)類型/范圍 備注
id 樓棟管理員id(主鍵) int(10)
name 姓名 varchar(10)
sex 性別 char(1)
phone 電話 varchar(11)
dormid 所屬宿舍(外鍵) int
buildid 所管理的樓棟(外鍵) int
表名:dorm_info
屬 性 含義 數(shù)據(jù)類型/范圍 備注
id 宿舍id(主鍵) int(10)
number 宿舍號(hào) varchar(10)
chief 舍長(zhǎng) varchar(10)
floor 所在層數(shù) varchar(100)
bed_number 總床位數(shù) varchar(100)
actual_number 實(shí)際人數(shù) varchar(100)
freebed 空余床位 varchar(100)
air_conditioner 是否有空調(diào) char(1) 是/否
remark 備注 text
buildid 所屬樓棟(外鍵) int(10)
build_adminid 所屬樓管管理 int(10)
表名:repair_info
屬 性 含義 數(shù)據(jù)類型/范圍 備注
id 報(bào)修記錄id(主鍵) int(10)
type 報(bào)修類型 varchar(100)
time 保修時(shí)間 datetime
reason 報(bào)修原因 varchar(100)
solution 解決情況 varchar(100)
remark 備注 text
dormid 所屬宿舍(外鍵) int(10)
表名:student_info
屬 性 含義 數(shù)據(jù)類型/范圍 備注
id 學(xué)生id(主鍵) int(10)
name 姓名 varchar(10)
number 學(xué)號(hào) varchar(100)
sex 性別 char(1)
grade 年級(jí) varchar(100)
faculty 院系 varchar(100)
major 專業(yè) varchar(100)
class 班級(jí) varchar(100)
phone 聯(lián)系電話 varchar(11)
enter_time 入住時(shí)間 datetime
state 在校狀態(tài) varchar(10)
feedback 意見反饋 varchar(100)
dormid 所屬宿舍(外鍵) int(10)
2.建立索引
為了提高在表中搜索元組的速度,在實(shí)際實(shí)現(xiàn)的時(shí)候應(yīng)該基于鍵碼建立索引是各表中建立索引的表項(xiàng):
(1)admin(id)
(2)campus_info(id)
(3)build_info(id,campusid)
(4)build_admin_info(id,dormid,buildid)
(5)dorm_info(id,buildid,build_adminid)
(6)repair_info(id,dormid)
(7)student_info(id,dormid)
3.建立視圖
– 定義視圖(查看陜西理工大學(xué)南校區(qū)的30歲以下樓棟管理員和他們的所屬樓棟和宿舍號(hào))
CREATE VIEW sel_build_admin_info AS
SELECT
ba.name '樓棟管理員姓名',
ba.sex,
ba.age,
ba.phone,
d.number '宿舍號(hào)',
b.name '樓棟名'
FROM
build_admin_info ba,
dorm_info d,
build_info b
WHERE ba.dormid = d.id
AND ba.buildid = b.id
AND age <= 30
– 使用視圖sel_build_admin_info
SELECT * FROM sel_build_admin_info
(八)表的創(chuàng)建
1.建表sql語句
– 創(chuàng)建宿舍管理系統(tǒng)數(shù)據(jù)庫(kù)(DMS Database)
CREATE DATABASE IF NOT EXISTS dms_db CHARSET utf8;
– 創(chuàng)建系統(tǒng)管理員表
CREATE TABLE admin (
id INT PRIMARY KEY AUTO_INCREMENT,
account VARCHAR (100),
PASSWORD VARCHAR (100),
new_file_name VARCHAR (20),
old_file_name VARCHAR (20),
TYPE INT DEFAULT 0
)
– 創(chuàng)建校區(qū)信息表
CREATE TABLE campus_info (
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR (100),
address VARCHAR (100),
phone VARCHAR (11),
email VARCHAR (100)
)
– 創(chuàng)建樓棟信息表
CREATE TABLE build_info (
id INT PRIMARY KEY AUTO_INCREMENT,
number VARCHAR (100),
NAME VARCHAR (100),
floor_number VARCHAR (100),
dorm_number VARCHAR (100),
campusid INT
)
– 創(chuàng)建樓棟管理員表
CREATE TABLE build_admin_info (
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR (10),
sex CHAR (1),
phone VARCHAR (11),
dormid INT,
buildid INT
)
– 創(chuàng)建宿舍信息表
CREATE TABLE dorm_info (
id INT PRIMARY KEY AUTO_INCREMENT,
number VARCHAR (10),
chief VARCHAR (10),
FLOOR VARCHAR (100),
bed_number VARCHAR (100),
actual_number VARCHAR (100),
freebed VARCHAR (100),
air_conditioner CHAR (1),
remark TEXT,
buildid INT,
build_adminid INT
)
– 創(chuàng)建報(bào)修表
CREATE TABLE repair_info (
id INT PRIMARY KEY AUTO_INCREMENT,
TYPE VARCHAR (100),
TIME DATETIME,
reason VARCHAR (100),
solution VARCHAR (100),
remark TEXT,
dormid INT
)
– 創(chuàng)建學(xué)生信息表文章來源:http://www.zghlxwxcb.cn/news/detail-468750.html
CREATE TABLE student_info (
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR (10),
number VARCHAR (100),
sex CHAR (1),
grade VARCHAR (100),
faculty VARCHAR (100),
major VARCHAR (100),
class VARCHAR (100),
phone VARCHAR (11),
enter_time DATETIME,
state VARCHAR (10),
feedback VARCHAR (100),
dormid INT
)
2.實(shí)現(xiàn)列、行及參照完整性
– 添加外鍵約束:
– ALTER TABLE 表名 ADD [CONSTRAINT 約束名(FK_主表_從表)] FOREIGN KEY(外鍵列) REFERENCES關(guān)聯(lián)表(主鍵);
– 把樓棟信息表中campusid與校區(qū)信息表中的id關(guān)聯(lián),campusid作為外鍵文章來源地址http://www.zghlxwxcb.cn/news/detail-468750.html
到了這里,關(guān)于數(shù)據(jù)庫(kù)課設(shè)——DMS(高校宿舍管理系統(tǒng))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!