Skip to content
Open

Done #195

Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 36 additions & 10 deletions task.sql
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,29 @@ CREATE TABLE Countries (
PRIMARY KEY (ID)
);

CREATE TABLE ProductInventory (
ID INT,
CREATE TABLE Products (
ID INT AUTO_INCREMENT,
ProductName VARCHAR(50),
WarehouseAmount INT,
PRIMARY KEY (ID)
Comment on lines +12 to +15

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similarly, consider declaring ID as INT AUTO_INCREMENT here to match the recommended improvement for primary keys.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added

);
Comment on lines +12 to +16

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Products table is defined but never populated; since ProductInventory.ProductID points here, inserting into ProductInventory will fail with a foreign key error and also does not recreate the original test data for product names as required.


CREATE TABLE Warehouses (
ID INT AUTO_INCREMENT,
WarehouseName VARCHAR(50),
WarehouseAddress VARCHAR(50),
WarehouseAddress 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)
Comment on lines +18 to +24

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For consistency and easier test data management, it would be beneficial to make this ID column AUTO_INCREMENT as well, although not strictly required by the core task.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added

);
Comment on lines +18 to +25

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warehouses table is defined but never populated; ProductInventory.WarehouseID references this table, so your INSERT statements into ProductInventory will violate foreign key constraints and warehouse name/address test data will be missing.



CREATE TABLE ProductInventory (
ID INT AUTO_INCREMENT,
ProductID INT,
FOREIGN KEY (ProductID) REFERENCES Products(ID) ON DELETE CASCADE,
WarehouseAmount INT,
WarehouseID INT,
FOREIGN KEY (WarehouseID) REFERENCES Warehouses(ID) ON DELETE CASCADE,
PRIMARY KEY (ID)
Comment on lines +28 to 35

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You may also want ID here to be AUTO_INCREMENT so new inventory rows can be added without manually managing IDs, aligning with the suggested improvement.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added

);

Expand All @@ -26,8 +41,19 @@ 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 Products (ID,ProductName)
VALUES (1, 'Product1');
INSERT INTO Products (ID,ProductName)
VALUES (2, 'Product2');

INSERT INTO Warehouses (ID,WarehouseName,WarehouseAddress,CountryID)
VALUES (1, 'Warehouse1', 'Address1', 1);

INSERT INTO Warehouses (ID,WarehouseName,WarehouseAddress,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);
Loading