ER Diagram
全部模板

酒店预订数据库表结构

一个预订系统模型。房间归属于某个房型,宾客在某段日期区间内为房间下预订,支付完成每笔预订结算。同样的结构可推广到租赁、共享办公工位或任何时段预订产品。

在编辑器中打开 → 5 张表 · MySQL DDL

此结构中的表

room_typesroomsguestsreservationspayments

表结构(SQL)

MySQL 方言的 DDL。在编辑器中打开可获得可编辑的可视化 ER 图,或直接将 SQL 复制到你的项目中。

CREATE TABLE room_types (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(100) NOT NULL,
  base_price DECIMAL(10,2) NOT NULL,
  capacity INT NOT NULL
);

CREATE TABLE rooms (
  id INT PRIMARY KEY AUTO_INCREMENT,
  room_type_id INT NOT NULL,
  room_number VARCHAR(10) NOT NULL UNIQUE,
  floor INT,
  FOREIGN KEY (room_type_id) REFERENCES room_types(id)
);

CREATE TABLE guests (
  id INT PRIMARY KEY AUTO_INCREMENT,
  full_name VARCHAR(120) NOT NULL,
  email VARCHAR(254) NOT NULL,
  phone VARCHAR(32),
  created_at DATETIME NOT NULL
);

CREATE TABLE reservations (
  id INT PRIMARY KEY AUTO_INCREMENT,
  guest_id INT NOT NULL,
  room_id INT NOT NULL,
  check_in DATE NOT NULL,
  check_out DATE NOT NULL,
  status VARCHAR(20) NOT NULL,
  total DECIMAL(12,2) NOT NULL,
  FOREIGN KEY (guest_id) REFERENCES guests(id),
  FOREIGN KEY (room_id) REFERENCES rooms(id)
);

CREATE TABLE payments (
  id INT PRIMARY KEY AUTO_INCREMENT,
  reservation_id INT NOT NULL,
  amount DECIMAL(12,2) NOT NULL,
  method VARCHAR(30) NOT NULL,
  paid_at DATETIME,
  FOREIGN KEY (reservation_id) REFERENCES reservations(id)
);