diff --git a/database.sql b/database.sql new file mode 100644 index 0000000..2169346 --- /dev/null +++ b/database.sql @@ -0,0 +1,141 @@ +-- Restaurant Database Management System +-- +-- Instructions: +-- 1. Create all required tables. +-- 2. Design appropriate PRIMARY KEY and FOREIGN KEY relationships. +-- 3. Add suitable constraints based on the requirements. +-- 4. Insert initial mock data. +-- 5. Insert at least 3 menu items. +-- 6. The script should be executable from start to finish without errors. + + + +-- ======================================================= +-- USER TABLE +-- ======================================================= +-- +-- Represents customers using the system. +-- +-- Required information: +-- - Unique identifier +-- - Username +-- - Password +-- - Email (optional) +-- +-- Requirements: +-- - Each user must have a unique identifier. +-- - Usernames must be unique. +-- - Username and password are required. +-- - Passwords should not be stored in plain text. +-- +-- CREATE TABLE ... + + + +-- ======================================================= +-- MENU ITEM TABLE +-- ======================================================= +-- +-- Represents available food and drink items. +-- +-- Required information: +-- - Unique identifier +-- - Name +-- - Description (optional) +-- - Price +-- - Category (optional) +-- +-- Requirements: +-- - Each menu item must have a unique identifier. +-- - Name is required. +-- - Price must always be positive. +-- +-- CREATE TABLE ... + + + +-- ======================================================= +-- ORDER TABLE +-- ======================================================= +-- +-- Represents orders placed by customers. +-- +-- Required information: +-- - Unique identifier +-- - Reference to customer +-- - Creation date and time +-- - Total price +-- +-- Requirements: +-- - Each order must belong to exactly one user. +-- - A user can have multiple orders. +-- - The relationship between User and Order must be implemented. +-- +-- Note: +-- Avoid using reserved SQL keywords as table names. +-- Consider using a name such as "orders" or "customer_orders". +-- +-- CREATE TABLE ... + + + +-- ======================================================= +-- ORDER DETAIL TABLE +-- ======================================================= +-- +-- Represents items inside an order. +-- +-- Required information: +-- - Unique identifier +-- - Reference to an order +-- - Reference to a menu item +-- - Quantity +-- - Item price at purchase time +-- +-- Requirements: +-- - Each detail record must belong to one order. +-- - Each detail record must reference one menu item. +-- - Quantity must always be greater than zero. +-- - Store the item's price at the moment of purchase. +-- +-- CREATE TABLE ... + + + +-- ======================================================= +-- INITIAL MENU DATA +-- ======================================================= +-- +-- Insert at least 3 food or drink items. +-- +-- Example categories: +-- - Pizza +-- - Burger +-- - Pasta +-- - Drink +-- +-- INSERT INTO ... + + + +-- ======================================================= +-- OPTIONAL TEST DATA +-- ======================================================= +-- +-- You may insert sample users and orders for testing. +-- This section is optional. +-- +-- INSERT INTO ... + + + +-- ======================================================= +-- VERIFICATION QUERIES +-- ======================================================= +-- +-- Uncomment these queries to verify your database. +-- +-- SELECT * FROM ...; +-- SELECT * FROM ...; +-- SELECT * FROM ...; +-- SELECT * FROM ...; \ No newline at end of file