From 4ed7aa2c0f0589c0cb25262071b205dea70ad024 Mon Sep 17 00:00:00 2001 From: Vladyslav Kozlov Date: Thu, 13 Nov 2025 00:04:34 +0200 Subject: [PATCH 1/3] Solution v1 --- task.sql | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/task.sql b/task.sql index cc65344..36c1804 100644 --- a/task.sql +++ b/task.sql @@ -1,5 +1,3 @@ --- Create database and tables - CREATE DATABASE ShopDB; USE ShopDB; @@ -9,25 +7,34 @@ 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), - CountryID INT, - FOREIGN KEY (CountryID) REFERENCES Countries(ID) ON DELETE NO ACTION, + WarehouseAddress VARCHAR(50), PRIMARY KEY (ID) ); --- Populate test data +CREATE TABLE ProductInventory ( + ID INT, + ProductName VARCHAR(50), + WarehouseID INT, + CountryID INT, + FOREIGN KEY (CountryID) REFERENCES Countries(ID) ON DELETE NO ACTION, + FOREIGN KEY (WarehouseID) REFERENCES WareHouses(ID) ON DELETE NO ACTION, + PRIMARY KEY (ID) +); 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 WareHouses (ID, WarehouseAmount, WarehouseName, WarehouseAddress) +VALUES (1, 100, 'Main Warehouse', 'Address 1'), + (2, 200, 'Backup Warehouse', 'Address 2'); + +INSERT INTO ProductInventory (ID, ProductName, CountryID, WarehouseID) + VALUES (1, 'AwersomeProduct', 1, 1); +INSERT INTO ProductInventory (ID, ProductName, CountryID, WarehouseID) + VALUES (2, 'AwersomeProduct', 2, 2); From b5a84ce42153a0fb6fd51ebf954345749f0c5e99 Mon Sep 17 00:00:00 2001 From: Vladyslav Kozlov Date: Thu, 13 Nov 2025 00:14:40 +0200 Subject: [PATCH 2/3] Solution v2 --- task.sql | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/task.sql b/task.sql index 36c1804..fb84e82 100644 --- a/task.sql +++ b/task.sql @@ -1,3 +1,5 @@ +DROP DATABASE IF EXISTS ShopDB; + CREATE DATABASE ShopDB; USE ShopDB; @@ -9,7 +11,6 @@ CREATE TABLE Countries ( CREATE TABLE WareHouses ( ID INT, - WarehouseAmount INT, WarehouseName VARCHAR(50), WarehouseAddress VARCHAR(50), PRIMARY KEY (ID) @@ -19,15 +20,16 @@ CREATE TABLE ProductInventory ( ID INT, ProductName VARCHAR(50), WarehouseID INT, + WarehouseAmount INT, CountryID INT, FOREIGN KEY (CountryID) REFERENCES Countries(ID) ON DELETE NO ACTION, FOREIGN KEY (WarehouseID) REFERENCES WareHouses(ID) ON DELETE NO ACTION, PRIMARY KEY (ID) ); -INSERT INTO Countries (ID,Name) +INSERT INTO Countries (ID, Name) VALUES (1, 'Country1'); -INSERT INTO Countries (ID,Name) +INSERT INTO Countries (ID, Name) VALUES (2, 'Country2'); INSERT INTO WareHouses (ID, WarehouseAmount, WarehouseName, WarehouseAddress) From 42659996ac442a443fee45ac1f75eb4c57db8101 Mon Sep 17 00:00:00 2001 From: Vladyslav Kozlov Date: Thu, 13 Nov 2025 00:35:28 +0200 Subject: [PATCH 3/3] Solution v3 --- task.sql | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/task.sql b/task.sql index fb84e82..71b03ea 100644 --- a/task.sql +++ b/task.sql @@ -13,30 +13,38 @@ CREATE TABLE WareHouses ( ID INT, WarehouseName VARCHAR(50), WarehouseAddress VARCHAR(50), + CountryID INT, + PRIMARY KEY (ID) +); + +CREATE TABLE Products ( + ID INT, + ProductName VARCHAR(50), PRIMARY KEY (ID) ); CREATE TABLE ProductInventory ( ID INT, - ProductName VARCHAR(50), + ProductID INT, WarehouseID INT, WarehouseAmount INT, - CountryID INT, - FOREIGN KEY (CountryID) REFERENCES Countries(ID) ON DELETE NO ACTION, + FOREIGN KEY (ProductID) REFERENCES Products(ID) ON DELETE NO ACTION, FOREIGN KEY (WarehouseID) REFERENCES WareHouses(ID) ON DELETE NO ACTION, PRIMARY KEY (ID) ); INSERT INTO Countries (ID, Name) - VALUES (1, 'Country1'); -INSERT INTO Countries (ID, Name) - VALUES (2, 'Country2'); + VALUES (1, 'Country1'), + (2, 'Country2'); + +INSERT INTO WareHouses (ID, WarehouseName, WarehouseAddress, CountryID) + VALUES (1, 'Main Warehouse', 'Address 1', 1), + (2, 'Backup Warehouse', 'Address 2', 2); -INSERT INTO WareHouses (ID, WarehouseAmount, WarehouseName, WarehouseAddress) -VALUES (1, 100, 'Main Warehouse', 'Address 1'), - (2, 200, 'Backup Warehouse', 'Address 2'); +INSERT INTO Products (ID, ProductName) + VALUES (1, 'AwersomeProduct'), + (2, 'AwersomeProduct'); -INSERT INTO ProductInventory (ID, ProductName, CountryID, WarehouseID) - VALUES (1, 'AwersomeProduct', 1, 1); -INSERT INTO ProductInventory (ID, ProductName, CountryID, WarehouseID) - VALUES (2, 'AwersomeProduct', 2, 2); +INSERT INTO ProductInventory (ID, ProductID, WarehouseID, WarehouseAmount) + VALUES (1, 1, 1, 100), + (2, 2, 2, 200);