forked from TarikBugraAy/inventory-management-project
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInventoryDatabase.sql
More file actions
100 lines (89 loc) · 2.83 KB
/
InventoryDatabase.sql
File metadata and controls
100 lines (89 loc) · 2.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
CREATE DATABASE inventorymanagement;
USE inventorymanagement;
-- Create Categories Table
CREATE TABLE `Categories` (
`CategoryID` INT NOT NULL AUTO_INCREMENT,
`CategoryName` VARCHAR(255) NOT NULL,
`Description` VARCHAR(255),
PRIMARY KEY (`CategoryID`)
);
-- Create Suppliers Table
CREATE TABLE `Suppliers` (
`SupplierID` INT NOT NULL AUTO_INCREMENT,
`SupplierName` VARCHAR(255) NOT NULL,
`ContactName` VARCHAR(255),
`ContactTitle` VARCHAR(255),
`Address` VARCHAR(500),
`Email` VARCHAR(255),
PRIMARY KEY (`SupplierID`),
UNIQUE (`Email`)
);
-- Create Product Table
CREATE TABLE `Product` (
`ProductID` INT NOT NULL AUTO_INCREMENT,
`ProductName` VARCHAR(255) NOT NULL,
`UnitPrice` DECIMAL(10, 2),
`Quantity` INT,
PRIMARY KEY (`ProductID`)
);
-- Create ProductSuppliers Table for Many-to-Many Relationship
CREATE TABLE `ProductSuppliers` (
`ProductID` INT NOT NULL,
`SupplierID` INT NOT NULL,
PRIMARY KEY (`ProductID`, `SupplierID`),
FOREIGN KEY (`ProductID`) REFERENCES `Product`(`ProductID`),
FOREIGN KEY (`SupplierID`) REFERENCES `Suppliers`(`SupplierID`)
);
-- Create User Table
CREATE TABLE `Users` (
`UserID` INT NOT NULL AUTO_INCREMENT,
`Username` VARCHAR(255) NOT NULL,
`Password` VARCHAR(255) NOT NULL, -- Plain text password for simplicity in a school project
`Email` VARCHAR(255),
`Role` VARCHAR(255),
PRIMARY KEY (`UserID`),
UNIQUE (`Email`)
);
-- Create Orders Table
CREATE TABLE `Orders` (
`OrderID` INT NOT NULL AUTO_INCREMENT,
`OrderDate` DATETIME,
`SupplierID` INT NOT NULL,
`ProductID` INT NOT NULL,
`UserID` INT,
`OrderQuantity` INT,
`UnitCost` DECIMAL(10, 2),
PRIMARY KEY (`OrderID`),
FOREIGN KEY (`SupplierID`) REFERENCES `Suppliers`(`SupplierID`),
FOREIGN KEY (`ProductID`) REFERENCES `Product`(`ProductID`),
FOREIGN KEY (`UserID`) REFERENCES `Users`(`UserID`)
);
-- Create Sales Table
CREATE TABLE `Sales` (
`SaleID` INT NOT NULL AUTO_INCREMENT,
`SalesDate` DATETIME,
`ProductID` INT NOT NULL,
`UserID` INT,
`SaleQuantity` INT,
PRIMARY KEY (`SaleID`),
FOREIGN KEY (`ProductID`) REFERENCES `Product`(`ProductID`),
FOREIGN KEY (`UserID`) REFERENCES `Users`(`UserID`)
);
CREATE TABLE `ProductCategory` (
`ProductID` INT NOT NULL,
`CategoryID` INT NOT NULL,
PRIMARY KEY (`ProductID`, `CategoryID`),
FOREIGN KEY (`ProductID`) REFERENCES `Product`(`ProductID`),
FOREIGN KEY (`CategoryID`) REFERENCES `Categories`(`CategoryID`)
);
-- Create Login Log Table
CREATE TABLE `LoginLog` (
`LogID` INT NOT NULL AUTO_INCREMENT,
`UserID` INT,
`LoginTime` DATETIME NOT NULL,
`LoginSuccess` BOOLEAN NOT NULL,
`Username` VARCHAR(255),
`UserRole` VARCHAR(255),
PRIMARY KEY (`LogID`),
FOREIGN KEY (`UserID`) REFERENCES `Users`(`UserID`)
);