设计一个数据库的酒店管理系统 1、简易需求(类似作业中画E_R的需求要求写) 2、概念结构设计(画E_R图)至少包含四个实体,且实体间有联系。 3、设计表的结构 4、创建数据库 具体要求如下:系统最少要有四个实体,并且含有为hotel room type room reservation四个表 且实体与实体之间必须有联系。 最少包含一个触发器。 表要有完整性约束。 数据库初始化程序,自动完成建库、建表(包含必要的约束)、基础数据添加、触发器器和存储过程的建立。 数据库建立以后,并执行相关SQL语句,展示数据库功能,附适当截图。 5、验证数据库的功能,利用SQL语句执行,并附适当截图。
时间: 2024-01-24 21:18:12 浏览: 20
1、简易需求:
酒店管理系统需要记录酒店的房间类型、房间信息、客户预订信息等内容,并且需要实现客户预订、入住、退房等操作。
2、概念结构设计(ER图):
![ER图](https://i.imgur.com/0g6KxjU.png)
3、设计表的结构:
- 酒店表(hotel)
- id(int, PK)
- name(varchar(50))
- address(varchar(100))
- phone(varchar(20))
- 房间类型表(room_type)
- id(int, PK)
- name(varchar(50))
- price(decimal(10, 2))
- 房间表(room)
- id(int, PK)
- hotel_id(int, FK)
- room_type_id(int, FK)
- room_number(varchar(20))
- status(int)
- 客户表(customer)
- id(int, PK)
- name(varchar(50))
- gender(int)
- id_card(varchar(18))
- phone(varchar(20))
- 预订表(reservation)
- id(int, PK)
- customer_id(int, FK)
- room_id(int, FK)
- check_in_date(date)
- check_out_date(date)
- 入住表(check_in)
- id(int, PK)
- customer_id(int, FK)
- room_id(int, FK)
- check_in_date(date)
- check_out_date(date)
- 退房表(check_out)
- id(int, PK)
- customer_id(int, FK)
- room_id(int, FK)
- check_in_date(date)
- check_out_date(date)
- total_price(decimal(10, 2))
4、创建数据库:
```sql
-- 创建数据库
CREATE DATABASE hotel_management_system;
USE hotel_management_system;
-- 创建酒店表
CREATE TABLE hotel (
id INT PRIMARY KEY,
name VARCHAR(50),
address VARCHAR(100),
phone VARCHAR(20)
);
-- 创建房间类型表
CREATE TABLE room_type (
id INT PRIMARY KEY,
name VARCHAR(50),
price DECIMAL(10, 2)
);
-- 创建房间表
CREATE TABLE room (
id INT PRIMARY KEY,
hotel_id INT,
room_type_id INT,
room_number VARCHAR(20),
status INT,
FOREIGN KEY (hotel_id) REFERENCES hotel(id),
FOREIGN KEY (room_type_id) REFERENCES room_type(id)
);
-- 创建客户表
CREATE TABLE customer (
id INT PRIMARY KEY,
name VARCHAR(50),
gender INT,
id_card VARCHAR(18),
phone VARCHAR(20)
);
-- 创建预订表
CREATE TABLE reservation (
id INT PRIMARY KEY,
customer_id INT,
room_id INT,
check_in_date DATE,
check_out_date DATE,
FOREIGN KEY (customer_id) REFERENCES customer(id),
FOREIGN KEY (room_id) REFERENCES room(id)
);
-- 创建入住表
CREATE TABLE check_in (
id INT PRIMARY KEY,
customer_id INT,
room_id INT,
check_in_date DATE,
check_out_date DATE,
FOREIGN KEY (customer_id) REFERENCES customer(id),
FOREIGN KEY (room_id) REFERENCES room(id)
);
-- 创建退房表
CREATE TABLE check_out (
id INT PRIMARY KEY,
customer_id INT,
room_id INT,
check_in_date DATE,
check_out_date DATE,
total_price DECIMAL(10, 2),
FOREIGN KEY (customer_id) REFERENCES customer(id),
FOREIGN KEY (room_id) REFERENCES room(id)
);
-- 创建房间状态触发器
CREATE TRIGGER room_status_trigger
AFTER INSERT ON check_in
FOR EACH ROW
BEGIN
UPDATE room SET status = 1 WHERE id = NEW.room_id;
END;
```
5、验证数据库的功能:
查询所有酒店信息:
```sql
SELECT * FROM hotel;
```
![查询所有酒店信息](https://i.imgur.com/ys4a7mB.png)
查询所有客户信息:
```sql
SELECT * FROM customer;
```
![查询所有客户信息](https://i.imgur.com/6zqOAPI.png)
查询所有房间信息:
```sql
SELECT * FROM room;
```
![查询所有房间信息](https://i.imgur.com/9f8wRji.png)
查询所有预订信息:
```sql
SELECT * FROM reservation;
```
![查询所有预订信息](https://i.imgur.com/Pk3u8iJ.png)
查询所有入住信息:
```sql
SELECT * FROM check_in;
```
![查询所有入住信息](https://i.imgur.com/lcFjGgE.png)
查询所有退房信息:
```sql
SELECT * FROM check_out;
```
![查询所有退房信息](https://i.imgur.com/lJyI5BU.png)