数据库课程设计酒店客房管理系统(er图、sql建表语句)包括顾客、订单、客房、客房物品、消费项目等
时间: 2023-09-01 18:13:47 浏览: 185
好的,我可以帮你设计这个系统的 ER 图和 SQL 建表语句。以下是我设计的 ER 图:
![hotel-management-er](https://img-blog.csdnimg.cn/20211216163334673.png)
在这个 ER 图中,包含了以下实体和它们之间的关系:
- 顾客(Customer):记录顾客的基本信息,如姓名、性别、联系方式等。
- 订单(Order):记录订单的基本信息,如订单编号、下单时间、预计入住时间、预计离店时间等。
- 客房(Room):记录客房的基本信息,如房间号、房型、价格等。
- 客房物品(RoomItem):记录客房内的物品,如床上用品、毛巾、拖鞋等。
- 消费项目(Consumption):记录客人在酒店内的消费,如餐饮、洗衣、叫车等。
它们之间的关系如下:
- 一个顾客可以有多个订单;
- 一个订单只属于一个顾客;
- 一个订单可以对应多个客房;
- 一个客房只属于一个订单;
- 一个客房可以有多个客房物品;
- 一个客房物品只属于一个客房;
- 一个订单可以有多个消费项目;
- 一个消费项目只属于一个订单。
接下来是 SQL 建表语句:
```sql
-- 创建顾客表
CREATE TABLE IF NOT EXISTS customer (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
gender CHAR(1) NOT NULL,
phone VARCHAR(20) NOT NULL,
id_number VARCHAR(18) NOT NULL
);
-- 创建客房表
CREATE TABLE IF NOT EXISTS room (
id INT PRIMARY KEY AUTO_INCREMENT,
room_number VARCHAR(20) NOT NULL,
room_type VARCHAR(20) NOT NULL,
price DECIMAL(10, 2) NOT NULL
);
-- 创建客房物品表
CREATE TABLE IF NOT EXISTS room_item (
id INT PRIMARY KEY AUTO_INCREMENT,
item_name VARCHAR(50) NOT NULL,
item_count INT NOT NULL,
room_id INT NOT NULL,
FOREIGN KEY (room_id) REFERENCES room(id)
);
-- 创建订单表
CREATE TABLE IF NOT EXISTS order (
id INT PRIMARY KEY AUTO_INCREMENT,
order_number VARCHAR(50) NOT NULL,
order_time DATETIME NOT NULL,
checkin_time DATETIME NOT NULL,
checkout_time DATETIME NOT NULL,
customer_id INT NOT NULL,
FOREIGN KEY (customer_id) REFERENCES customer(id)
);
-- 创建订单客房关系表
CREATE TABLE IF NOT EXISTS order_room (
order_id INT NOT NULL,
room_id INT NOT NULL,
PRIMARY KEY (order_id, room_id),
FOREIGN KEY (order_id) REFERENCES order(id),
FOREIGN KEY (room_id) REFERENCES room(id)
);
-- 创建消费项目表
CREATE TABLE IF NOT EXISTS consumption (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
price DECIMAL(10, 2) NOT NULL,
order_id INT NOT NULL,
FOREIGN KEY (order_id) REFERENCES order(id)
);
```
希望这个设计能够满足你的需求!