complete Restaurant Database Management System implementation

This commit is contained in:
Fatemesadat Mirabootalebi
2026-06-22 08:48:12 -07:00
parent 00f990c653
commit 7ef862c5e1
18 changed files with 656 additions and 26 deletions
+49 -9
View File
@@ -8,7 +8,10 @@
-- 5. Insert at least 3 menu items.
-- 6. The script should be executable from start to finish without errors.
DROP TABLE IF EXISTS order_details CASCADE;
DROP TABLE IF EXISTS orders CASCADE;
DROP TABLE IF EXISTS menu_items CASCADE;
DROP TABLE IF EXISTS users CASCADE;
-- =======================================================
-- USER TABLE
@@ -30,6 +33,12 @@
--
-- CREATE TABLE ...
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
email VARCHAR(100)
);
-- =======================================================
@@ -52,7 +61,13 @@
--
-- CREATE TABLE ...
CREATE TABLE menu_items (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
description TEXT,
price DECIMAL(10, 2) NOT NULL CHECK (price > 0),
category VARCHAR(50)
);
-- =======================================================
-- ORDER TABLE
@@ -77,7 +92,13 @@
--
-- CREATE TABLE ...
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
user_id INT NOT NULL,
order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
total_amount DECIMAL(10, 2) NOT NULL DEFAULT 0.00 CHECK (total_amount >= 0),
CONSTRAINT fk_order_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);
-- =======================================================
-- ORDER DETAIL TABLE
@@ -100,7 +121,15 @@
--
-- CREATE TABLE ...
CREATE TABLE order_details (
id SERIAL PRIMARY KEY,
order_id INT NOT NULL,
menu_item_id INT NOT NULL,
quantity INT NOT NULL CHECK (quantity > 0),
price_at_purchase DECIMAL(10, 2) NOT NULL CHECK (price_at_purchase > 0),
CONSTRAINT fk_detail_order FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE,
CONSTRAINT fk_detail_menu FOREIGN KEY (menu_item_id) REFERENCES menu_items(id) ON DELETE RESTRICT
);
-- =======================================================
-- INITIAL MENU DATA
@@ -116,7 +145,11 @@
--
-- INSERT INTO ...
INSERT INTO menu_items (name, description, price, category) VALUES
('Pizza', 'Delicious cheese and pepperoni pizza', 10.00, 'Pizza'),
('Burger', 'Juicy grilled beef burger with fries', 8.00, 'Burger'),
('Pasta', 'Creamy Alfredo pasta with chicken', 12.00, 'Pasta'),
('Coca Cola', 'Chilled soft drink', 2.50, 'Drink');
-- =======================================================
-- OPTIONAL TEST DATA
@@ -127,7 +160,14 @@
--
-- INSERT INTO ...
INSERT INTO users (username, password, email) VALUES
('fatemeh_demo', '$2a$10$EixZaYVK1upmZ7zpKgH97O5F', 'fatemeh@example.com');
INSERT INTO orders (user_id, total_amount) VALUES
(1, 20.00);
INSERT INTO order_details (order_id, menu_item_id, quantity, price_at_purchase) VALUES
(1, 1, 2, 10.00);
-- =======================================================
-- VERIFICATION QUERIES
@@ -135,7 +175,7 @@
--
-- Uncomment these queries to verify your database.
--
-- SELECT * FROM ...;
-- SELECT * FROM ...;
-- SELECT * FROM ...;
-- SELECT * FROM ...;
SELECT * FROM users;
SELECT * FROM menu_items;
SELECT * FROM orders;
SELECT * FROM orders;