From 149619b6c98a01ac6af5d33cfe2b9cdb5287bb61 Mon Sep 17 00:00:00 2001 From: Leonid Lachmann <148564629+leoleiden@users.noreply.github.com> Date: Mon, 30 Jun 2025 14:20:21 +0300 Subject: [PATCH 1/3] Update task.sql --- task.sql | 64 +++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 24 deletions(-) diff --git a/task.sql b/task.sql index cc65344..29dd7b5 100644 --- a/task.sql +++ b/task.sql @@ -1,33 +1,49 @@ --- Create database and tables - +DROP DATABASE IF EXISTS ShopDB; CREATE DATABASE ShopDB; USE ShopDB; CREATE TABLE Countries ( - ID INT, - Name VARCHAR(50), - PRIMARY KEY (ID) + ID INT PRIMARY KEY AUTO_INCREMENT, + Name VARCHAR(100) NOT NULL +); + +CREATE TABLE Warehouses ( + ID INT PRIMARY KEY AUTO_INCREMENT, + Name VARCHAR(100) NOT NULL, + Address VARCHAR(255) NOT NULL, + CountryID INT NOT NULL, + FOREIGN KEY (CountryID) REFERENCES Countries(ID) +); + +CREATE TABLE Products ( + ID INT PRIMARY KEY AUTO_INCREMENT, + Name VARCHAR(100) NOT NULL ); CREATE TABLE ProductInventory ( - 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, - PRIMARY KEY (ID) + ProductID INT NOT NULL, + WarehouseID INT NOT NULL, + Amount INT NOT NULL, + PRIMARY KEY (ProductID, WarehouseID), + FOREIGN KEY (ProductID) REFERENCES Products(ID), + FOREIGN KEY (WarehouseID) REFERENCES Warehouses(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, 'USA'), +(2, 'Canada'); + +INSERT INTO Warehouses (ID, Name, Address, CountryID) VALUES +(1, 'Main Warehouse', '1234 Warehouse Ave', 1), +(2, 'Secondary Warehouse', '5678 Storage St', 2); + +INSERT INTO Products (ID, Name) VALUES +(1, 'iPhone 13'), +(2, 'Samsung Galaxy S21'); + +INSERT INTO ProductInventory (ProductID, WarehouseID, Amount) VALUES +(1, 1, 100), +(2, 1, 50), +(1, 2, 200), +(2, 2, 150); From 76f7814fb7c5517167d1086e289ff7f09bc07b95 Mon Sep 17 00:00:00 2001 From: Leonid Lachmann <148564629+leoleiden@users.noreply.github.com> Date: Mon, 30 Jun 2025 14:28:18 +0300 Subject: [PATCH 2/3] Update2 task.sql --- task.sql | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/task.sql b/task.sql index 29dd7b5..f380622 100644 --- a/task.sql +++ b/task.sql @@ -20,16 +20,17 @@ CREATE TABLE Products ( Name VARCHAR(100) NOT NULL ); +-- Оновлена структура ProductInventory з ID CREATE TABLE ProductInventory ( + ID INT PRIMARY KEY AUTO_INCREMENT, ProductID INT NOT NULL, WarehouseID INT NOT NULL, Amount INT NOT NULL, - PRIMARY KEY (ProductID, WarehouseID), FOREIGN KEY (ProductID) REFERENCES Products(ID), FOREIGN KEY (WarehouseID) REFERENCES Warehouses(ID) ); --- Додавання тестових даних +-- Оновлені INSERT-записи INSERT INTO Countries (ID, Name) VALUES (1, 'USA'), (2, 'Canada'); @@ -42,8 +43,9 @@ INSERT INTO Products (ID, Name) VALUES (1, 'iPhone 13'), (2, 'Samsung Galaxy S21'); -INSERT INTO ProductInventory (ProductID, WarehouseID, Amount) VALUES -(1, 1, 100), -(2, 1, 50), -(1, 2, 200), -(2, 2, 150); +-- Додаємо ID в INSERT +INSERT INTO ProductInventory (ID, ProductID, WarehouseID, Amount) VALUES +(1, 1, 1, 100), +(2, 2, 1, 50), +(3, 1, 2, 200), +(4, 2, 2, 150); From c0a3bb72fc738c736c5c66e91d354d025762f066 Mon Sep 17 00:00:00 2001 From: Leonid Lachmann <148564629+leoleiden@users.noreply.github.com> Date: Mon, 30 Jun 2025 14:31:45 +0300 Subject: [PATCH 3/3] Update3 task.sql --- task.sql | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/task.sql b/task.sql index f380622..16d4cc1 100644 --- a/task.sql +++ b/task.sql @@ -20,7 +20,6 @@ CREATE TABLE Products ( Name VARCHAR(100) NOT NULL ); --- Оновлена структура ProductInventory з ID CREATE TABLE ProductInventory ( ID INT PRIMARY KEY AUTO_INCREMENT, ProductID INT NOT NULL, @@ -30,22 +29,22 @@ CREATE TABLE ProductInventory ( FOREIGN KEY (WarehouseID) REFERENCES Warehouses(ID) ); --- Оновлені INSERT-записи -INSERT INTO Countries (ID, Name) VALUES -(1, 'USA'), -(2, 'Canada'); - -INSERT INTO Warehouses (ID, Name, Address, CountryID) VALUES -(1, 'Main Warehouse', '1234 Warehouse Ave', 1), -(2, 'Secondary Warehouse', '5678 Storage St', 2); - -INSERT INTO Products (ID, Name) VALUES -(1, 'iPhone 13'), -(2, 'Samsung Galaxy S21'); - --- Додаємо ID в INSERT -INSERT INTO ProductInventory (ID, ProductID, WarehouseID, Amount) VALUES -(1, 1, 1, 100), -(2, 2, 1, 50), -(3, 1, 2, 200), -(4, 2, 2, 150); +-- Виправлені INSERT-записи без вказівки ID +INSERT INTO Countries (Name) VALUES +('USA'), +('Canada'); + +INSERT INTO Warehouses (Name, Address, CountryID) VALUES +('Main Warehouse', '1234 Warehouse Ave', 1), +('Secondary Warehouse', '5678 Storage St', 2); + +INSERT INTO Products (Name) VALUES +('iPhone 13'), +('Samsung Galaxy S21'); + +-- Виправлений INSERT для ProductInventory +INSERT INTO ProductInventory (ProductID, WarehouseID, Amount) VALUES +(1, 1, 100), +(2, 1, 50), +(1, 2, 200), +(2, 2, 150);