From 0603e3d664498ca6524a94abef62ecbdd9c39c14 Mon Sep 17 00:00:00 2001 From: dimonalek Date: Mon, 20 Apr 2026 13:48:09 +0300 Subject: [PATCH 1/4] DB Normalised --- task.sql | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/task.sql b/task.sql index cc65344..f2b0165 100644 --- a/task.sql +++ b/task.sql @@ -11,15 +11,30 @@ CREATE TABLE Countries ( CREATE TABLE ProductInventory ( ID INT, - ProductName VARCHAR(50), + ProductID INT, WarehouseAmount INT, - WarehouseName VARCHAR(50), - WarehouseAddress VARCHAR(50), + WarehouseID INT, + FOREIGN KEY (WarehouseID) REFERENCES Warehouses(ID) ON DELETE NO ACTION, + FOREIGN KEY (ProductID) REFERENCES Products(ID) ON DELETE NO ACTION, + PRIMARY KEY (ID) +); + +CREATE TABLE Warehouses ( + ID INT, + Name VARCHAR(50), + Address 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 Products ( + ID INT, + Name VARCHAR(50), + Description VARCHAR(100), + Price INT, + PRIMARY KEY (ID) +); -- Populate test data INSERT INTO Countries (ID,Name) @@ -27,7 +42,7 @@ INSERT INTO Countries (ID,Name) 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 ProductInventory (ID,ProductID,WarehouseAmount,WarehouseID) + VALUES (1, 1, 2, 1); +INSERT INTO ProductInventory (ID,ProductID,WarehouseAmount,WarehouseID) + VALUES (2, 1, 5, 2); From afb1d5f0f4cc65baacc981e5ff34142dedbec400 Mon Sep 17 00:00:00 2001 From: dimonalek Date: Mon, 20 Apr 2026 14:12:45 +0300 Subject: [PATCH 2/4] DB Normalised --- task.sql | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/task.sql b/task.sql index f2b0165..fe70851 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; @@ -9,16 +9,6 @@ CREATE TABLE Countries ( PRIMARY KEY (ID) ); -CREATE TABLE ProductInventory ( - ID INT, - ProductID INT, - WarehouseAmount INT, - WarehouseID INT, - FOREIGN KEY (WarehouseID) REFERENCES Warehouses(ID) ON DELETE NO ACTION, - FOREIGN KEY (ProductID) REFERENCES Products(ID) ON DELETE NO ACTION, - PRIMARY KEY (ID) -); - CREATE TABLE Warehouses ( ID INT, Name VARCHAR(50), @@ -35,6 +25,18 @@ CREATE TABLE Products ( Price INT, PRIMARY KEY (ID) ); + +CREATE TABLE ProductInventory ( + ID INT, + ProductID INT, + WarehouseAmount INT, + WarehouseID INT, + FOREIGN KEY (WarehouseID) REFERENCES Warehouses(ID) ON DELETE NO ACTION, + FOREIGN KEY (ProductID) REFERENCES Products(ID) ON DELETE NO ACTION, + PRIMARY KEY (ID) +); + + -- Populate test data INSERT INTO Countries (ID,Name) @@ -46,3 +48,13 @@ INSERT INTO ProductInventory (ID,ProductID,WarehouseAmount,WarehouseID) VALUES (1, 1, 2, 1); INSERT INTO ProductInventory (ID,ProductID,WarehouseAmount,WarehouseID) VALUES (2, 1, 5, 2); + +INSERT INTO Products (ID,Name,Description,Price) + VALUES (1, 'Product1', 'Description1', 100); +INSERT INTO Products (ID,Name,Description,Price) + VALUES (2, 'Product2', 'Description2', 200); + +INSERT INTO Warehouses (ID,Name,Address,CountryID) + VALUES (1, 'Warehouse1', 'Address1', 1); +INSERT INTO Warehouses (ID,Name,Address,CountryID) + VALUES (2, 'Warehouse2', 'Address2', 2); From 5d5d70aeda8a07c992d9b44cbd1c416e43d38be8 Mon Sep 17 00:00:00 2001 From: dimonalek Date: Mon, 20 Apr 2026 14:24:32 +0300 Subject: [PATCH 3/4] DB Normalised --- task.sql | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/task.sql b/task.sql index fe70851..170360a 100644 --- a/task.sql +++ b/task.sql @@ -43,11 +43,6 @@ INSERT INTO Countries (ID,Name) VALUES (1, 'Country1'); INSERT INTO Countries (ID,Name) VALUES (2, 'Country2'); - -INSERT INTO ProductInventory (ID,ProductID,WarehouseAmount,WarehouseID) - VALUES (1, 1, 2, 1); -INSERT INTO ProductInventory (ID,ProductID,WarehouseAmount,WarehouseID) - VALUES (2, 1, 5, 2); INSERT INTO Products (ID,Name,Description,Price) VALUES (1, 'Product1', 'Description1', 100); @@ -58,3 +53,8 @@ INSERT INTO Warehouses (ID,Name,Address,CountryID) VALUES (1, 'Warehouse1', 'Address1', 1); INSERT INTO Warehouses (ID,Name,Address,CountryID) VALUES (2, 'Warehouse2', 'Address2', 2); + +INSERT INTO ProductInventory (ID,ProductID,WarehouseAmount,WarehouseID) + VALUES (1, 1, 2, 1); +INSERT INTO ProductInventory (ID,ProductID,WarehouseAmount,WarehouseID) + VALUES (2, 1, 5, 2); \ No newline at end of file From 4a92029b32e90ca6208a895b96ef926734524eeb Mon Sep 17 00:00:00 2001 From: dimonalek Date: Mon, 20 Apr 2026 14:29:48 +0300 Subject: [PATCH 4/4] DB Normalised --- task.sql | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/task.sql b/task.sql index 170360a..a58f08b 100644 --- a/task.sql +++ b/task.sql @@ -9,23 +9,24 @@ CREATE TABLE Countries ( PRIMARY KEY (ID) ); -CREATE TABLE Warehouses ( +CREATE TABLE Products ( ID INT, Name VARCHAR(50), - Address VARCHAR(50), - CountryID INT, - FOREIGN KEY (CountryID) REFERENCES Countries(ID) ON DELETE NO ACTION, + Description VARCHAR(100), + Price INT, PRIMARY KEY (ID) ); -CREATE TABLE Products ( +CREATE TABLE Warehouses ( ID INT, Name VARCHAR(50), - Description VARCHAR(100), - Price INT, + Address VARCHAR(50), + CountryID INT, + FOREIGN KEY (CountryID) REFERENCES Countries(ID) ON DELETE NO ACTION, PRIMARY KEY (ID) ); + CREATE TABLE ProductInventory ( ID INT, ProductID INT,