From ef0461cb521bb9b9965758b100fe498d085c4492 Mon Sep 17 00:00:00 2001 From: Petro Kravchenko Date: Fri, 5 Jun 2026 00:42:30 +0300 Subject: [PATCH 1/3] Solution --- task.sql | 55 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/task.sql b/task.sql index cc65344..dffe4fa 100644 --- a/task.sql +++ b/task.sql @@ -8,15 +8,35 @@ CREATE TABLE Countries ( Name VARCHAR(50), PRIMARY KEY (ID) ); +CREATE TABLE Cities ( + ID INT AUTO_INCREMENT, + NAME VARCHAR(100), + CountryID INT, + FOREIGN KEY (CountryID) REFERENCES Countries(ID) ON DELETE NO ACTION, + PRIMARY KEY (ID) +); +CREATE TABLE Streets ( + ID INT AUTO_INCREMENT, + NAME VARCHAR(100), + CityID INT, + FOREIGN KEY (CityID) REFERENCES Cities(ID) ON DELETE NO ACTION, + PRIMARY KEY (ID) +); + +CREATE TABLE Warehouses ( + ID INT AUTO_INCREMENT, + NAME VARCHAR(100), + StreetID INT, + FOREIGN KEY (StreetID) REFERENCES Streets(ID) ON DELETE NO ACTION, + PRIMARY KEY (ID) +); CREATE TABLE ProductInventory ( - ID INT, - ProductName VARCHAR(50), + ID INT AUTO_INCREMENT, + ProductName VARCHAR(100), WarehouseAmount INT, - WarehouseName VARCHAR(50), - WarehouseAddress VARCHAR(50), - CountryID INT, - FOREIGN KEY (CountryID) REFERENCES Countries(ID) ON DELETE NO ACTION, + WarehouseID INT, + FOREIGN KEY (WarehouseID) REFERENCES Warehouses(ID) ON DELETE NO ACTION, PRIMARY KEY (ID) ); @@ -26,8 +46,23 @@ INSERT INTO Countries (ID,Name) VALUES (1, 'Country1'); INSERT INTO Countries (ID,Name) VALUES (2, 'Country2'); + +INSERT INTO Cities (NAME,CountryID) + VALUES ('City-1', 1); +INSERT INTO Cities (NAME,CountryID) + VALUES ('City-2', 2); + +INSERT Streets (NAME,CityID) + VALUES ('Street-1', 1); +INSERT Streets (NAME,CityID) + VALUES ('Street-2', 2); + +INSERT INTO Warehouses (NAME,StreetID) + VALUES ('Warehouse-1', 1); +INSERT INTO Warehouses (NAME,StreetID) + VALUES ('Warehouse-2', 2); -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,ProductName,WarehouseAmount,WarehouseID) + VALUES (1, 'AwersomeProduct', 2, 1); +INSERT INTO ProductInventory (ID,ProductName,WarehouseAmount,WarehouseID) + VALUES (2, 'AwersomeProduct', 5, 2); From 5a20dcb1fe0442295f24fb81f2b1d09f9588a365 Mon Sep 17 00:00:00 2001 From: Petro Kravchenko Date: Fri, 5 Jun 2026 01:03:12 +0300 Subject: [PATCH 2/3] Fix structure --- task.sql | 64 ++++++++++++++++++-------------------------------------- 1 file changed, 20 insertions(+), 44 deletions(-) diff --git a/task.sql b/task.sql index dffe4fa..fe60bfa 100644 --- a/task.sql +++ b/task.sql @@ -1,5 +1,4 @@ --- Create database and tables - +DROP DATABASE IF EXISTS ShopDB; CREATE DATABASE ShopDB; USE ShopDB; @@ -8,32 +7,19 @@ CREATE TABLE Countries ( Name VARCHAR(50), PRIMARY KEY (ID) ); -CREATE TABLE Cities ( - ID INT AUTO_INCREMENT, - NAME VARCHAR(100), - CountryID INT, - FOREIGN KEY (CountryID) REFERENCES Countries(ID) ON DELETE NO ACTION, - PRIMARY KEY (ID) -); -CREATE TABLE Streets ( - ID INT AUTO_INCREMENT, - NAME VARCHAR(100), - CityID INT, - FOREIGN KEY (CityID) REFERENCES Cities(ID) ON DELETE NO ACTION, - PRIMARY KEY (ID) -); CREATE TABLE Warehouses ( - ID INT AUTO_INCREMENT, - NAME VARCHAR(100), - StreetID INT, - FOREIGN KEY (StreetID) REFERENCES Streets(ID) ON DELETE NO ACTION, + ID INT, + WarehouseName VARCHAR(50), + WarehouseAddress VARCHAR(50), + CountryID INT, + FOREIGN KEY (CountryID) REFERENCES Countries(ID) ON DELETE NO ACTION, PRIMARY KEY (ID) ); CREATE TABLE ProductInventory ( - ID INT AUTO_INCREMENT, - ProductName VARCHAR(100), + ID INT, + ProductName VARCHAR(50), WarehouseAmount INT, WarehouseID INT, FOREIGN KEY (WarehouseID) REFERENCES Warehouses(ID) ON DELETE NO ACTION, @@ -42,27 +28,17 @@ CREATE TABLE ProductInventory ( -- Populate test data -INSERT INTO Countries (ID,Name) - VALUES (1, 'Country1'); -INSERT INTO Countries (ID,Name) - VALUES (2, 'Country2'); - -INSERT INTO Cities (NAME,CountryID) - VALUES ('City-1', 1); -INSERT INTO Cities (NAME,CountryID) - VALUES ('City-2', 2); +INSERT INTO Countries (ID, Name) + VALUES (1, 'Country1'); +INSERT INTO Countries (ID, Name) + VALUES (2, 'Country2'); -INSERT Streets (NAME,CityID) - VALUES ('Street-1', 1); -INSERT Streets (NAME,CityID) - VALUES ('Street-2', 2); +INSERT INTO Warehouses (ID, WarehouseName, WarehouseAddress, CountryID) + VALUES (1, 'Warehouse-1', 'City-1, Street-1', 1); +INSERT INTO Warehouses (ID, WarehouseName, WarehouseAddress, CountryID) + VALUES (2, 'Warehouse-2', 'City-2, Street-2', 2); -INSERT INTO Warehouses (NAME,StreetID) - VALUES ('Warehouse-1', 1); -INSERT INTO Warehouses (NAME,StreetID) - VALUES ('Warehouse-2', 2); - -INSERT INTO ProductInventory (ID,ProductName,WarehouseAmount,WarehouseID) - VALUES (1, 'AwersomeProduct', 2, 1); -INSERT INTO ProductInventory (ID,ProductName,WarehouseAmount,WarehouseID) - VALUES (2, 'AwersomeProduct', 5, 2); +INSERT INTO ProductInventory (ID, ProductName, WarehouseAmount, WarehouseID) + VALUES (1, 'AwersomeProduct', 2, 1); +INSERT INTO ProductInventory (ID, ProductName, WarehouseAmount, WarehouseID) + VALUES (2, 'AwersomeProduct', 5, 2); \ No newline at end of file From fbbc346605fa249da90ead7737dc3c6a76fc9927 Mon Sep 17 00:00:00 2001 From: Petro Kravchenko Date: Fri, 5 Jun 2026 01:10:56 +0300 Subject: [PATCH 3/3] add table product --- task.sql | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/task.sql b/task.sql index fe60bfa..afac330 100644 --- a/task.sql +++ b/task.sql @@ -17,11 +17,18 @@ CREATE TABLE Warehouses ( PRIMARY KEY (ID) ); -CREATE TABLE ProductInventory ( +CREATE TABLE Products ( ID INT, ProductName VARCHAR(50), + 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) ); @@ -38,7 +45,10 @@ INSERT INTO Warehouses (ID, WarehouseName, WarehouseAddress, CountryID) INSERT INTO Warehouses (ID, WarehouseName, WarehouseAddress, CountryID) VALUES (2, 'Warehouse-2', 'City-2, Street-2', 2); -INSERT INTO ProductInventory (ID, ProductName, WarehouseAmount, WarehouseID) - VALUES (1, 'AwersomeProduct', 2, 1); -INSERT INTO ProductInventory (ID, ProductName, WarehouseAmount, WarehouseID) - VALUES (2, 'AwersomeProduct', 5, 2); \ No newline at end of file +INSERT INTO Products (ID, ProductName) + VALUES (1, 'AwersomeProduct'); + +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