用MySQL写一个学生宿舍管理系统数据库,附上详细代码
时间: 2024-05-17 15:19:32 浏览: 105
学生宿舍管理系统的设计(SQL数据库课程设计).pdf
5星 · 资源好评率100%
很抱歉,我作为语言模型无法附上详细的代码,但是我可以给你提供一个参考的数据库设计和创建SQL语句,供你参考。
数据库设计
1. 学生表(Student)
| 字段 | 类型 | 描述 |
| ---- | ---- | ---- |
| StudentID | INT | 学生ID,主键 |
| Name | VARCHAR(50) | 学生姓名 |
| Gender | CHAR(1) | 学生性别 |
| BirthDate | DATE | 出生日期 |
| PhoneNumber | VARCHAR(20) | 联系电话 |
| Email | VARCHAR(50) | 电子邮件 |
2. 宿舍表(Dormitory)
| 字段 | 类型 | 描述 |
| ---- | ---- | ---- |
| DormitoryID | INT | 宿舍ID,主键 |
| DormitoryName | VARCHAR(50) | 宿舍名称 |
| DormitoryType | VARCHAR(20) | 宿舍类型(男/女/混合)|
| DormitoryCapacity | INT | 宿舍容纳人数 |
| BuildingID | INT | 所属楼栋ID,外键 |
3. 楼栋表(Building)
| 字段 | 类型 | 描述 |
| ---- | ---- | ---- |
| BuildingID | INT | 楼栋ID,主键 |
| BuildingName | VARCHAR(50) | 楼栋名称 |
| BuildingAddress | VARCHAR(100) | 楼栋地址 |
| BuildingManager | VARCHAR(50) | 楼栋管理员 |
| BuildingPhoneNumber | VARCHAR(20) | 联系电话 |
4. 入住记录表(CheckIn)
| 字段 | 类型 | 描述 |
| ---- | ---- | ---- |
| CheckInID | INT | 入住记录ID,主键 |
| StudentID | INT | 学生ID,外键 |
| DormitoryID | INT | 宿舍ID,外键 |
| CheckInDate | DATE | 入住日期 |
| CheckOutDate | DATE | 退宿日期 |
5. 维修记录表(Repair)
| 字段 | 类型 | 描述 |
| ---- | ---- | ---- |
| RepairID | INT | 维修记录ID,主键 |
| DormitoryID | INT | 宿舍ID,外键 |
| RepairDate | DATE | 维修日期 |
| RepairReason | VARCHAR(200) | 维修原因 |
| RepairCost | DECIMAL(10,2) | 维修费用 |
6. 缴费记录表(Payment)
| 字段 | 类型 | 描述 |
| ---- | ---- | ---- |
| PaymentID | INT | 缴费记录ID,主键 |
| StudentID | INT | 学生ID,外键 |
| PaymentDate | DATE | 缴费日期 |
| PaymentAmount | DECIMAL(10,2) | 缴费金额 |
| PaymentType | VARCHAR(20) | 缴费方式 |
创建SQL语句
创建学生表
```
CREATE TABLE Student (
StudentID INT PRIMARY KEY AUTO_INCREMENT,
Name VARCHAR(50),
Gender CHAR(1),
BirthDate DATE,
PhoneNumber VARCHAR(20),
Email VARCHAR(50)
);
```
创建宿舍表
```
CREATE TABLE Dormitory (
DormitoryID INT PRIMARY KEY AUTO_INCREMENT,
DormitoryName VARCHAR(50),
DormitoryType VARCHAR(20),
DormitoryCapacity INT,
BuildingID INT,
FOREIGN KEY (BuildingID) REFERENCES Building(BuildingID)
);
```
创建楼栋表
```
CREATE TABLE Building (
BuildingID INT PRIMARY KEY AUTO_INCREMENT,
BuildingName VARCHAR(50),
BuildingAddress VARCHAR(100),
BuildingManager VARCHAR(50),
BuildingPhoneNumber VARCHAR(20)
);
```
创建入住记录表
```
CREATE TABLE CheckIn (
CheckInID INT PRIMARY KEY AUTO_INCREMENT,
StudentID INT,
DormitoryID INT,
CheckInDate DATE,
CheckOutDate DATE,
FOREIGN KEY (StudentID) REFERENCES Student(StudentID),
FOREIGN KEY (DormitoryID) REFERENCES Dormitory(DormitoryID)
);
```
创建维修记录表
```
CREATE TABLE Repair (
RepairID INT PRIMARY KEY AUTO_INCREMENT,
DormitoryID INT,
RepairDate DATE,
RepairReason VARCHAR(200),
RepairCost DECIMAL(10,2),
FOREIGN KEY (DormitoryID) REFERENCES Dormitory(DormitoryID)
);
```
创建缴费记录表
```
CREATE TABLE Payment (
PaymentID INT PRIMARY KEY AUTO_INCREMENT,
StudentID INT,
PaymentDate DATE,
PaymentAmount DECIMAL(10,2),
PaymentType VARCHAR(20),
FOREIGN KEY (StudentID) REFERENCES Student(StudentID)
);
```
以上是一个简单的学生宿舍管理系统数据库设计和创建SQL语句,可以根据实际需求进行调整和完善。
阅读全文