From b33c880621104cfbba0ab0410771c1b1fc76c15d Mon Sep 17 00:00:00 2001 From: Karina Kryzh Date: Wed, 4 Feb 2026 19:48:36 +0000 Subject: [PATCH 1/3] Normalize database --- task.sql | 52 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/task.sql b/task.sql index cc65344..ddd70c0 100644 --- a/task.sql +++ b/task.sql @@ -9,25 +9,49 @@ CREATE TABLE Countries ( PRIMARY KEY (ID) ); -CREATE TABLE ProductInventory ( +CREATE TABLE Warehouses ( ID INT, - ProductName VARCHAR(50), - WarehouseAmount INT, WarehouseName VARCHAR(50), - WarehouseAddress VARCHAR(50), + WarehouseAddress VARCHAR(50), + PRIMARY KEY (ID) +); + +CREATE TABLE Products ( + ID INT, + ProductName VARCHAR(50), CountryID INT, - FOREIGN KEY (CountryID) REFERENCES Countries(ID) ON DELETE NO ACTION, + FOREIGN KEY (CountryID) REFERENCES Countries(ID) ON DELETE NO ACTION, + PRIMARY KEY (ID) +); + +CREATE TABLE ProductInventory ( + ID INT, + ProductID INT, + WarehouseAmount INT, + WarehouseID INT, + FOREIGN KEY (ProductID) REFERENCES Products(ID) ON DELETE NO ACTION, + FOREIGN KEY (WarehouseID) REFERENCES Warehouses(ID) ON DELETE NO ACTION, PRIMARY KEY (ID) ); -- Populate test data -INSERT INTO Countries (ID,Name) - VALUES (1, 'Country1'); -INSERT INTO Countries (ID,Name) - VALUES (2, 'Country2'); - -INSERT INTO ProductInventory (ID,ProductName,WarehouseAmount,WarehouseName,WarehouseAddress,CountryID) - VALUES (1, 'AwersomeProduct', 2, 'Warehouse-1', 'City-1, Street-1',1); -INSERT INTO ProductInventory (ID,ProductName,WarehouseAmount,WarehouseName,WarehouseAddress,CountryID) - VALUES (2, 'AwersomeProduct', 5, 'Warehouse-2', 'City-2, Street-2',2); +--INSERT INTO Countries (ID,Name) +-- VALUES (1, 'Country1'); +--INSERT INTO Countries (ID,Name) +-- VALUES (2, 'Country2'); +-- +--INSERT INTO Warehouses (ID, WarehouseName, WarehouseAddress) +-- VALUES (1, 'Warehouse-1', 'City-1, Street-1'); +--INSERT INTO Warehouses (ID, WarehouseName, WarehouseAddress) +-- VALUES (2, 'Warehouse-2', 'City-2, Street-2'); +-- +--INSERT INTO Products (ID, ProductName, CountryID) +-- VALUES (1, 'AwesomeProduct', 1); +--INSERT INTO Products (ID, ProductName, CountryID) +-- VALUES (2, 'AwesomeProduct', 2); +-- +--INSERT INTO ProductInventory (ID, ProductID, WarehouseAmount, WarehouseID) +-- VALUES (1, 1, 2, 1); +--INSERT INTO ProductInventory (ID, ProductID, WarehouseAmount, WarehouseID) +-- VALUES (2, 2, 5, 2); From be1a509fd87f03d9c9c279d7b2c42967038a837d Mon Sep 17 00:00:00 2001 From: Karina Kryzh Date: Wed, 4 Feb 2026 19:52:25 +0000 Subject: [PATCH 2/3] Add tests --- task.sql | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/task.sql b/task.sql index ddd70c0..7a86fcc 100644 --- a/task.sql +++ b/task.sql @@ -36,22 +36,22 @@ CREATE TABLE ProductInventory ( -- Populate test data ---INSERT INTO Countries (ID,Name) --- VALUES (1, 'Country1'); ---INSERT INTO Countries (ID,Name) --- VALUES (2, 'Country2'); --- ---INSERT INTO Warehouses (ID, WarehouseName, WarehouseAddress) --- VALUES (1, 'Warehouse-1', 'City-1, Street-1'); ---INSERT INTO Warehouses (ID, WarehouseName, WarehouseAddress) --- VALUES (2, 'Warehouse-2', 'City-2, Street-2'); --- ---INSERT INTO Products (ID, ProductName, CountryID) --- VALUES (1, 'AwesomeProduct', 1); ---INSERT INTO Products (ID, ProductName, CountryID) --- VALUES (2, 'AwesomeProduct', 2); --- ---INSERT INTO ProductInventory (ID, ProductID, WarehouseAmount, WarehouseID) --- VALUES (1, 1, 2, 1); ---INSERT INTO ProductInventory (ID, ProductID, WarehouseAmount, WarehouseID) --- VALUES (2, 2, 5, 2); +INSERT INTO Countries (ID,Name) + VALUES (1, 'Country1'); +INSERT INTO Countries (ID,Name) + VALUES (2, 'Country2'); + +INSERT INTO Warehouses (ID, WarehouseName, WarehouseAddress) + VALUES (1, 'Warehouse-1', 'City-1, Street-1'); +INSERT INTO Warehouses (ID, WarehouseName, WarehouseAddress) + VALUES (2, 'Warehouse-2', 'City-2, Street-2'); + +INSERT INTO Products (ID, ProductName, CountryID) + VALUES (1, 'AwesomeProduct', 1); +INSERT INTO Products (ID, ProductName, CountryID) + VALUES (2, 'AwesomeProduct', 2); + +INSERT INTO ProductInventory (ID, ProductID, WarehouseAmount, WarehouseID) + VALUES (1, 1, 2, 1); +INSERT INTO ProductInventory (ID, ProductID, WarehouseAmount, WarehouseID) + VALUES (2, 2, 5, 2); From 8bee04c8246ed9911e1e065b02ae6bbc7e1d4b1f Mon Sep 17 00:00:00 2001 From: Karina Kryzh Date: Wed, 4 Feb 2026 19:55:59 +0000 Subject: [PATCH 3/3] Add DROP DATABASE --- task.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/task.sql b/task.sql index 7a86fcc..0b397c6 100644 --- a/task.sql +++ b/task.sql @@ -1,5 +1,5 @@ -- Create database and tables - +DROP DATABASE IF EXISTS ShopDB; CREATE DATABASE ShopDB; USE ShopDB;