diff --git a/LittleLemonDB.sql b/LittleLemonDB.sql index dc60a27..9ff9fcc 100644 --- a/LittleLemonDB.sql +++ b/LittleLemonDB.sql @@ -7,6 +7,7 @@ SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,N -- ----------------------------------------------------- -- Schema LittleLemonDB -- ----------------------------------------------------- +DROP SCHEMA IF EXISTS `LittleLemonDB` ; -- ----------------------------------------------------- -- Schema LittleLemonDB @@ -15,9 +16,9 @@ CREATE SCHEMA IF NOT EXISTS `LittleLemonDB` ; USE `LittleLemonDB` ; -- ----------------------------------------------------- --- Table `LittleLemonDB`.`Address` +-- Table `LittleLemonDB`.`Addresses` -- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `LittleLemonDB`.`Address` ( +CREATE TABLE IF NOT EXISTS `LittleLemonDB`.`Addresses` ( `AddressID` INT NOT NULL, `Street` VARCHAR(255) NOT NULL, `PostalCode` VARCHAR(12) NOT NULL, @@ -28,9 +29,9 @@ ENGINE = InnoDB; -- ----------------------------------------------------- --- Table `LittleLemonDB`.`Customer` +-- Table `LittleLemonDB`.`Customers` -- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `LittleLemonDB`.`Customer` ( +CREATE TABLE IF NOT EXISTS `LittleLemonDB`.`Customers` ( `CustomerID` INT NOT NULL, `FirstName` VARCHAR(255) NOT NULL, `LastName` VARCHAR(255) NOT NULL, @@ -38,114 +39,115 @@ CREATE TABLE IF NOT EXISTS `LittleLemonDB`.`Customer` ( `EmailAddress` VARCHAR(255) NULL, `AddressID` INT NULL, PRIMARY KEY (`CustomerID`), - INDEX `FK_Customer_Address1_idx` (`AddressID` ASC) VISIBLE, - CONSTRAINT `FK_Customer_Address1` + INDEX `FK_Customers_Addresses1_idx` (`AddressID` ASC) VISIBLE, + CONSTRAINT `FK_Customers_Addresses1` FOREIGN KEY (`AddressID`) - REFERENCES `LittleLemonDB`.`Address` (`AddressID`) + REFERENCES `LittleLemonDB`.`Addresses` (`AddressID`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE = InnoDB; -- ----------------------------------------------------- --- Table `LittleLemonDB`.`Employee` +-- Table `LittleLemonDB`.`Employees` -- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `LittleLemonDB`.`Employee` ( +CREATE TABLE IF NOT EXISTS `LittleLemonDB`.`Employees` ( `EmployeeID` INT NOT NULL, `FirstName` VARCHAR(255) NOT NULL, `LastName` VARCHAR(255) NOT NULL, `PhoneNumber` VARCHAR(45) NOT NULL, `EmailAddress` VARCHAR(255) NOT NULL, `Role` VARCHAR(255) NOT NULL, - `AnnualSalary` DECIMAL(6,2) NOT NULL COMMENT 'Gross annual salary', + `AnnualSalary` DECIMAL(10,2) NOT NULL COMMENT 'Gross annual salary', `AddressID` INT NOT NULL, PRIMARY KEY (`EmployeeID`), - INDEX `FK_Employee_Address1_idx` (`AddressID` ASC) VISIBLE, - CONSTRAINT `FK_Employee_Address1` + INDEX `FK_Employees_Addresses1_idx` (`AddressID` ASC) VISIBLE, + CONSTRAINT `FK_Employees_Addresses1` FOREIGN KEY (`AddressID`) - REFERENCES `LittleLemonDB`.`Address` (`AddressID`) + REFERENCES `LittleLemonDB`.`Addresses` (`AddressID`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE = InnoDB; -- ----------------------------------------------------- --- Table `LittleLemonDB`.`Booking` +-- Table `LittleLemonDB`.`Bookings` -- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `LittleLemonDB`.`Booking` ( +CREATE TABLE IF NOT EXISTS `LittleLemonDB`.`Bookings` ( `BookingID` INT NOT NULL, `Reserved` DATETIME NOT NULL, - `Table` INT NOT NULL, + `TableNumber` INT NOT NULL, `CustomerID` INT NOT NULL, `EmployeeID` INT NOT NULL, PRIMARY KEY (`BookingID`), - INDEX `FK_Booking_Customer1_idx` (`CustomerID` ASC) VISIBLE, - INDEX `FK_Booking_Employee1_idx` (`EmployeeID` ASC) VISIBLE, - CONSTRAINT `FK_Booking_Customer1` + INDEX `FK_Bookings_Customers1_idx` (`CustomerID` ASC) VISIBLE, + INDEX `FK_Bookings_Employees1_idx` (`EmployeeID` ASC) VISIBLE, + CONSTRAINT `FK_Bookings_Customers1` FOREIGN KEY (`CustomerID`) - REFERENCES `LittleLemonDB`.`Customer` (`CustomerID`) + REFERENCES `LittleLemonDB`.`Customers` (`CustomerID`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `FK_Booking_Employee1` + CONSTRAINT `FK_Bookings_Employees1` FOREIGN KEY (`EmployeeID`) - REFERENCES `LittleLemonDB`.`Employee` (`EmployeeID`) + REFERENCES `LittleLemonDB`.`Employees` (`EmployeeID`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE = InnoDB; -- ----------------------------------------------------- --- Table `LittleLemonDB`.`MenuItem` +-- Table `LittleLemonDB`.`MenuItems` -- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `LittleLemonDB`.`MenuItem` ( +CREATE TABLE IF NOT EXISTS `LittleLemonDB`.`MenuItems` ( `MenuItemID` INT NOT NULL, `Name` VARCHAR(255) NOT NULL, - `Type` VARCHAR(255) NOT NULL, + `Category` VARCHAR(255) NOT NULL, `Price` DECIMAL(6,2) NOT NULL, - `Active` TINYINT NOT NULL DEFAULT 1, + `InUse` TINYINT NOT NULL DEFAULT 1, PRIMARY KEY (`MenuItemID`)) ENGINE = InnoDB; -- ----------------------------------------------------- --- Table `LittleLemonDB`.`Order` +-- Table `LittleLemonDB`.`Orders` -- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `LittleLemonDB`.`Order` ( +CREATE TABLE IF NOT EXISTS `LittleLemonDB`.`Orders` ( `OrderID` INT NOT NULL, `Started` DATETIME NOT NULL, `Finished` DATETIME NULL, `BillAmount` DECIMAL(10,2) NULL, `BookingID` INT NOT NULL, PRIMARY KEY (`OrderID`), - INDEX `FK_Order_Booking1_idx` (`BookingID` ASC) VISIBLE, - CONSTRAINT `FK_Order_Booking1` + INDEX `FK_Orders_Bookings1_idx` (`BookingID` ASC) VISIBLE, + CONSTRAINT `FK_Orders_Bookings1` FOREIGN KEY (`BookingID`) - REFERENCES `LittleLemonDB`.`Booking` (`BookingID`) + REFERENCES `LittleLemonDB`.`Bookings` (`BookingID`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE = InnoDB; -- ----------------------------------------------------- --- Table `LittleLemonDB`.`OrderItem` +-- Table `LittleLemonDB`.`OrderItems` -- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `LittleLemonDB`.`OrderItem` ( - `MenuItemID` INT NOT NULL, - `OrderID` INT NOT NULL, - `Price` DECIMAL(6,2) NOT NULL, +CREATE TABLE IF NOT EXISTS `LittleLemonDB`.`OrderItems` ( + `OrderItemID` INT NOT NULL, `Ordered` DATETIME NOT NULL, `Delivered` DATETIME NULL, `DeliveryStatus` VARCHAR(45) NOT NULL, - PRIMARY KEY (`MenuItemID`, `OrderID`), - INDEX `FK_OrderItem_Order1_idx` (`OrderID` ASC) VISIBLE, - CONSTRAINT `FK_OrderItem_MenuItem1` - FOREIGN KEY (`MenuItemID`) - REFERENCES `LittleLemonDB`.`MenuItem` (`MenuItemID`) + `OrderID` INT NOT NULL, + `MenuItemID` INT NOT NULL, + PRIMARY KEY (`OrderItemID`), + INDEX `FK_OrderItems_Orders1_idx` (`OrderID` ASC) VISIBLE, + INDEX `FK_OrderItems_MenuItems1_idx` (`MenuItemID` ASC) VISIBLE, + CONSTRAINT `FK_OrderItems_Orders1` + FOREIGN KEY (`OrderID`) + REFERENCES `LittleLemonDB`.`Orders` (`OrderID`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `FK_OrderItem_Order1` - FOREIGN KEY (`OrderID`) - REFERENCES `LittleLemonDB`.`Order` (`OrderID`) + CONSTRAINT `FK_OrderItems_MenuItems1` + FOREIGN KEY (`MenuItemID`) + REFERENCES `LittleLemonDB`.`MenuItems` (`MenuItemID`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE = InnoDB; diff --git a/LittleLemonDM.mwb b/LittleLemonDM.mwb index 0f8faf2..b99e008 100644 Binary files a/LittleLemonDM.mwb and b/LittleLemonDM.mwb differ diff --git a/LittleLemonDM.png b/LittleLemonDM.png index dc78447..4906dd3 100644 Binary files a/LittleLemonDM.png and b/LittleLemonDM.png differ