Tables in this schema
room_typesroomsguestsreservationspayments
Schema (SQL)
MySQL-dialect DDL. Open it in the editor for a visual ER diagram you can edit, or copy the SQL straight into your project.
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)
);