一、项目背景
随着学校规模的不断扩大,宿舍管理面临着越来越多的挑战。为了提高宿舍管理的效率,减少人工操作,我们设计了一个宿舍管理系统。该系统旨在实现宿舍信息的集中管理、快速查询、数据分析以及提高住宿生的生活质量。
二、系统设计目标
1.实现对宿舍楼、房间、床位等信息的集中管理。
2.提供便捷的查询功能,方便管理员和学生查询宿舍信息。
3.实现宿舍费用的查询和缴纳功能。
4.提供数据分析功能,帮助管理员了解宿舍使用情况和住宿生需求。
5.提高宿舍管理的透明度和公正性,减少人为错误和纠纷。
三、数据库概念模型(ER图)
首先,我们需要定义系统中的主要实体及其之间的关系。在宿舍管理系统中,主要的实体包括宿舍楼(Building)、房间(Room)、床位(Bed)、学生(Student)和费用(Fee)等。以下是这些实体之间的ER图(实体-关系图):
四、数据库表设计
基于上述ER图,我们可以设计出以下的数据库表:
创建数据库宿舍管理系统(Dormitory)
CREATE DATABASE Dormitory;
宿舍楼表(Buildings)
CREATE TABLE Buildings(
BuildingID VARCHAR(8) NOT NULL PRIMARY KEY,
BuildingName VARCHAR(20) NOT NULL,
Address VARCHAR (5)NOT NULL,
FloorCount VARCHAR(5) NOT NULL
);
宿舍表(Rooms)
CREATE TABLE Rooms(
RoomID VARCHAR(5) NOT NULL PRIMARY KEY,
BuildingID VARCHAR(5) FOREIGN KEY REFERENCES Buildings(BuildingID),
RoomType VARCHAR(50) NOT NULL,
OccupiedStatus ENUM('Empty','Occupied')
);
床位表(Beds)
CREATE TABLE Beds(
BedID VARCHAR(10) PRIMARY KEY,
RoomID VARCHAR(10), FOREIGN KEY REFERENCES Rooms(RoomID),
BedStatus ENUM('Empty', 'Occupied')
);
学生表(Students)
CREATE TABLE students(
StudentID VARCHAR(12) PRIMARY KEY AUTO_INCREMENT,
Name VARCHAR(15),
Gender ENUM('Male', 'Female', 'Other'),
Major VARCHAR(15),
PhoneNumber VARCHAR(15),
BedID VARCHAR(15) FOREIGN KEY REFERENCES Beds(BedID) ON DELETE SET NULL
);
费用表(Frees)
CREATE TABLE Fees(
FeeID VARCHAR(15) INT PRIMARY KEY AUTO_INCREMENT,
StudentID VARCHAR(15) FOREIGN KEY REFERENCES Students(StudentID),
FeeType VARCHAR(15),
Amount DECIMAL(10, 2),
PaidStatus ENUM('Paid', 'Unpaid'),
PaymentDate DATE);
仅供参考,写得不好,请大家指出错误的地方,我会好好修改的