楚孟慧,吳姝瑤
(山東科技大學電氣信息系,山東濟南,250031)
隨著計算機技術的發展,信息的收集與統計早已經離開了傳統的紙質記錄轉而記錄在各種數據庫中。數據庫中的數據存儲更容易保存、統計管理也更加方便快捷。面對復雜的學生公寓管理建立一套完整的數據庫系統來存儲信息能夠幫助我們更好地管理學生公寓信息。
實現一個學生公寓管理系統需要完成以下內容:
學生信息管理:學生信息添加以及成績、宿舍號、樓層號、樓房號的查詢。實現學生信息的動態更新。
管理員信息管理:管理員與學生身份的不同設置以及權限分配設置。實現系統的安全和管理員信息的動態更新,通過管理員權限可對學生用戶進行查詢、修改、添加、刪除。保證管理員的優先權限和對系統的主要控制功能。
學生入住管理:管理員用戶登陸-->錄入學生信息-->學生登錄-->查詢相關信息-->管理員修改相關信息-->管理員添加新用戶-->管理員維護數據庫信息
宿舍管理系統需要實現宿舍學生和管理員權限的區別登陸,權限設定。宿舍管理員應擁有、對宿舍成員的學號、姓名、宿舍號、宿舍樓的增加、刪除、修改、查詢權限和衛生成績評定、修改、查詢。學生應能夠實現宿舍成績、宿舍樓、宿舍號、管理員的查詢以及新用戶添加的權限。學生權限在管理員權限之下,保證數據庫的安全性。采用java來讀取數據庫中的表內容在控制后臺輸出,和錄入。
將實體以及實體之間的關系轉化為E-R圖如圖1。其中宿舍樓與宿舍是一對多的關系學生與管理員是多對多的關系。

圖1 E-R圖
每個實體的關系模式:
宿舍樓(樓房號,房間數,應住人數)
宿舍(宿舍號,住宿費,床位數,人數)
屬于(樓房號,宿舍號,樓層號)外碼:樓房號,宿舍號
學生(學號,姓名,用戶名,密碼,權限)
管理員(工號,姓名,性別,電話,用戶名,密碼,權限)
管理(工號,學號,成績)外碼:工號,學號
入?。ㄋ奚崽?,學號,入住時間)外碼:學號,宿舍號
為每個實體類新建數據表,此處以學生表和管理員表為例,student表結構如圖2其中學號、姓名、用戶名、密碼和權限分別用stno、name、username、password、power來表示,其中學號為主鍵。管理員表如圖3所示其中管理員工號、姓名、性別、電話、用戶名、密碼和權限分別用mno、mname、msex、mtel、username、password、power來 表 示。其 中nchar(10)表示數據類型為char型,對于常見的姓名、用戶名、電話、密碼等都非常適用。其中10表示字符長度,當用作密碼時可以將字符長度改為16、32等更長的字符長度,避免因長度不夠而產生的錯誤。not null是與null相反的建表屬性,not null 的設定會導致該項在填入表數據時是不可或缺的。

圖2 student學生表

圖3 managers管理員表
數據表結構建立好之后為每個學生添加信息如表1。

表1 學生信息
此處power項中0代表一種權限,此數據庫將0規定為學生權限,管理員權限則設置為1。由于stno是主鍵所以每一行的stno都應不同否則數據添加不成功。管理員表數據添加與學生表相似此處不再列出。數據庫中的數據內容到此就準備結束了,接下來要進行數據庫的管理操作,需要使用java來編寫鏈接數據庫代碼。
下載鏈接工具包,配置到eclipse中,將sql server數據庫與eclise進行鏈接。首先建立實體類,實體類中各屬性名稱與數據庫表中名稱協調一致,方便調用。分別建立邏輯層、數據庫訪問層。實現學生與管理員的權限限制,實現學生信息的增加、刪除、修改、查詢等功能。具體功能如下圖4所示。

圖4 功能列表
數據庫的建立和使用可以使復雜的數據有組織有條理的存儲起來,并對存儲起來的數據進行方便快捷的管理。首先建立數據庫需要精準的需求分析,這樣在需求的基礎上才能實現相應的功能。其次對每個實體做出E-R圖,對數據中的主鍵和外鍵有著清楚地把握。接下來建立表結構并且填入表數據。最后將數據庫用java語言編寫代碼與eclipse等軟件連接,通過java等編程語言實現數據操作。