1. 邏輯結構設計
所有數據存儲在數據庫ruc_zixizhushou中。
admin (admin_id, admin_name, admin_password, admin_loc, admin_status)
此為管理員用戶對應的關系模式,管理員編號是關系的主碼。admin_name, admin_password表示管理員登錄姓名和密碼,admin_loc是管理員所在的教學樓,admin_status是管理員此時是否在崗的標識
user (user_id, user_openid, user_status)
此為普通用戶實體對應的關系模式,用戶編號是關系的主碼,open_id是通過微信登錄接口獲得的用戶唯一標識碼,user_status代表用戶是否已入座自習
classroom (classroom_id, classroom_building, classroom_name, classroom_capacity)
此為教室基本信息對應的關系模式,教室編號是關系的主碼和外碼。classroom_building代表教學樓,classroom_name代表教室名稱,classroom_capacity表示教室最多可容納人數。
cls_status (classroom_id, cls_current, cls_people, cls_time)
此為教室狀態對應的關系模式,教室編號是關系的主碼。cls_current代表是否有課或被借出,cls_people代表教室現有自習人數,cls_time是時間段
library (lib_id, lib_area, lib_seat, lib_person, lib_outlet)
此為圖書館對應的關系模式,lib_id和lib_area是關系的主碼。lib_seat代表座位號,lib_person代表是否有人,lib_outlet代表是否有插座。
request (request_id, user_id, user_stuid, user_name, user_school, request_time, request_building, request_classroom, request_reason, request_feedback)
此為教室借用申請對應的關系模式,請求編號是關系的主碼。user_id是申請人的編號,user_stuid, user_school和user_name是申請人的學號、學院和姓名。request_time、request_building、request_classroom和request_reason是打算占用的時間、教學樓、教室名稱和原因。request_feedback代表管理員對請求的處理
2. 物理結構設計
存取方法
- 在classroom表的classroom_id和classroom_building列上建立索引。由於教室號和教學樓號經常作為查找對象,建立連接操作,所以建立索引,可以提高查詢速度。
- 在library表的lib_id列上建立聚簇,由於本校只有圖書館和藏書館兩個library,所以含有相同lib_id的元組比較多,所以適合建立聚簇,把lib_id列上具有相同值的元組集中存放在連續的物理塊中。
數據庫基本表概覽