From 9bf3682d69a6fa7008890d15361f4e294b0cf384 Mon Sep 17 00:00:00 2001 From: Danylo Moroz Date: Sat, 24 Jan 2026 23:49:52 +0100 Subject: [PATCH 1/3] database_normalization_moroz --- .idea/.gitignore | 5 + .idea/dbnavigator.xml | 463 ++++++++++++++++++ .idea/inspectionProfiles/Project_Default.xml | 17 + .../inspectionProfiles/profiles_settings.xml | 6 + .idea/misc.xml | 4 + .idea/modules.xml | 8 + .idea/rda_task_4_database_normalization.iml | 10 + .idea/vcs.xml | 6 + task.sql~ | 33 ++ 9 files changed, 552 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/dbnavigator.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/rda_task_4_database_normalization.iml create mode 100644 .idea/vcs.xml create mode 100644 task.sql~ diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..ea7ed09 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/dbnavigator.xml b/.idea/dbnavigator.xml new file mode 100644 index 0000000..1e070ee --- /dev/null +++ b/.idea/dbnavigator.xml @@ -0,0 +1,463 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..c52c0f4 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,17 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..e2990b9 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..d4d7d12 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/rda_task_4_database_normalization.iml b/.idea/rda_task_4_database_normalization.iml new file mode 100644 index 0000000..2ee1aa3 --- /dev/null +++ b/.idea/rda_task_4_database_normalization.iml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..c8397c9 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/task.sql~ b/task.sql~ new file mode 100644 index 0000000..cc65344 --- /dev/null +++ b/task.sql~ @@ -0,0 +1,33 @@ +-- Create database and tables + +CREATE DATABASE ShopDB; +USE ShopDB; + +CREATE TABLE Countries ( + ID INT, + Name VARCHAR(50), + PRIMARY KEY (ID) +); + +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) +); + +-- 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); From dd9d0380b3fd334cc04b70056171409a43450008 Mon Sep 17 00:00:00 2001 From: Danylo Moroz Date: Sat, 24 Jan 2026 23:55:45 +0100 Subject: [PATCH 2/3] added_some_data --- .idea/misc.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.idea/misc.xml b/.idea/misc.xml index e2990b9..28795c1 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,7 @@ + + \ No newline at end of file From 5f300fdf1e4e13642c8dc334ef1719c20d89a6cb Mon Sep 17 00:00:00 2001 From: Danylo Moroz Date: Sat, 24 Jan 2026 23:59:26 +0100 Subject: [PATCH 3/3] again_added_data --- task.sql | 57 ++++++++++++++++++++++++++++++++++++------------------- task.sql~ | 33 -------------------------------- 2 files changed, 38 insertions(+), 52 deletions(-) delete mode 100644 task.sql~ diff --git a/task.sql b/task.sql index cc65344..0011e75 100644 --- a/task.sql +++ b/task.sql @@ -1,33 +1,52 @@ --- Create database and tables - +DROP DATABASE IF EXISTS ShopDB; CREATE DATABASE ShopDB; USE ShopDB; CREATE TABLE Countries ( - ID INT, + ID INT AUTO_INCREMENT, + Name VARCHAR(50), + PRIMARY KEY (ID) +); + +CREATE TABLE Products ( + ID INT AUTO_INCREMENT, Name VARCHAR(50), PRIMARY KEY (ID) ); +CREATE TABLE Warehouses ( + ID INT AUTO_INCREMENT, + Name VARCHAR(50), + Address VARCHAR(50), + CountryID INT, + PRIMARY KEY (ID), + FOREIGN KEY (CountryID) REFERENCES Countries(ID) ON DELETE NO ACTION +); + CREATE TABLE ProductInventory ( - ID INT, - ProductName VARCHAR(50), + ID INT AUTO_INCREMENT, + ProductID INT, + WarehouseID INT, WarehouseAmount INT, - WarehouseName VARCHAR(50), - WarehouseAddress VARCHAR(50), - CountryID INT, - FOREIGN KEY (CountryID) REFERENCES Countries(ID) ON DELETE NO ACTION, - PRIMARY KEY (ID) + PRIMARY KEY (ID), + FOREIGN KEY (ProductID) REFERENCES Products(ID) ON DELETE CASCADE, + FOREIGN KEY (WarehouseID) REFERENCES Warehouses(ID) ON DELETE CASCADE ); + -- 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 (Name) VALUES + ('Country1'), + ('Country2'); + +INSERT INTO Products (Name) + VALUES ('AwersomeProduct'); + +INSERT INTO Warehouses (Name, Address, CountryID) VALUES + ('Warehouse-1', 'City-1, Street-1', 1), + ('Warehouse-2', 'City-2, Street-2', 2); + +INSERT INTO ProductInventory (ProductID, WarehouseID, WarehouseAmount) VALUES + (1, 1, 2), + (1, 2, 5); diff --git a/task.sql~ b/task.sql~ deleted file mode 100644 index cc65344..0000000 --- a/task.sql~ +++ /dev/null @@ -1,33 +0,0 @@ --- Create database and tables - -CREATE DATABASE ShopDB; -USE ShopDB; - -CREATE TABLE Countries ( - ID INT, - Name VARCHAR(50), - PRIMARY KEY (ID) -); - -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) -); - --- 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);