JSP Servlet
Quản lý nhà hàng - Khoá Học JSP/Servlet
📌 Yêu cầu chức năng
1. Người dùng (Users)
- Đăng ký tài khoản (register)
- Đăng nhập (login)
- Sau khi đăng nhập thành công → vào hệ thống
2. Quản lý bàn (Tables)
- Thêm bàn
- Hiển thị danh sách bàn
- Cập nhật thông tin bàn (sức chứa, trạng thái)
- Xóa bàn
👉 Trạng thái bàn:
- available (trống)
- reserved (đã đặt)
- occupied (đang sử dụng)
3. Quản lý đặt bàn (Reservations)
- Đặt bàn
- Xem danh sách đặt bàn (kèm thông tin người dùng + bàn)
-
Cập nhật trạng thái:
- pending
- confirmed
- cancelled
- Hủy đặt bàn
4. Luồng hệ thống
- Người dùng đăng ký tài khoản
- Đăng nhập
-
Sau khi đăng nhập thành công:
- Vào trang quản lý bàn
- Thực hiện đặt bàn
- Hệ thống lưu dữ liệu
CREATE DATABASE restaurant_db;
USE restaurant_db;
-- ========================
-- Bảng Users
-- ========================
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
full_name VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- ========================
-- Bảng Tables
-- ========================
CREATE TABLE tables (
id INT AUTO_INCREMENT PRIMARY KEY,
table_number INT NOT NULL,
capacity INT NOT NULL,
status VARCHAR(50) DEFAULT 'available',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- ========================
-- Bảng Reservations
-- ========================
CREATE TABLE reservations (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
table_id INT,
reservation_time DATETIME,
number_of_people INT,
status VARCHAR(50) DEFAULT 'pending',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id)
ON DELETE CASCADE
ON UPDATE CASCADE,
FOREIGN KEY (table_id) REFERENCES tables(id)
ON DELETE SET NULL
ON UPDATE CASCADE
);
-- ========================
-- Dữ liệu mẫu
-- ========================
-- Users
INSERT INTO users(username, password, full_name) VALUES
('user1', '123456', 'Nguyễn Văn A'),
('user2', '123456', 'Trần Thị B');
-- Tables
INSERT INTO tables(table_number, capacity, status) VALUES
(1, 4, 'available'),
(2, 6, 'available'),
(3, 2, 'available');
-- Reservations
INSERT INTO reservations(user_id, table_id, reservation_time, number_of_people, status) VALUES
(1, 1, '2026-05-01 18:00:00', 4, 'confirmed'),
(2, 2, '2026-05-02 19:00:00', 5, 'pending');