1 | DROP TABLE IF EXISTS `aktivniprodukti`;
|
---|
2 | DROP VIEW IF EXISTS `aktivniprodukti`;
|
---|
3 |
|
---|
4 | CREATE TABLE `customer` (
|
---|
5 | `CustomerID` int NOT NULL,
|
---|
6 | `CustomerName` varchar(100) DEFAULT NULL,
|
---|
7 | `CustomerSurName` varchar(100) DEFAULT NULL,
|
---|
8 | `Email` varchar(100) DEFAULT NULL,
|
---|
9 | `Address` varchar(255) DEFAULT NULL,
|
---|
10 | `CustomerContact` varchar(20) DEFAULT NULL,
|
---|
11 | `Password` varchar(255) NOT NULL,
|
---|
12 | PRIMARY KEY (`CustomerID`)
|
---|
13 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
---|
14 |
|
---|
15 | CREATE TABLE `customerfeedback` (
|
---|
16 | `FeedbackID` int NOT NULL,
|
---|
17 | `CustomerID` int DEFAULT NULL,
|
---|
18 | `ProductID` int DEFAULT NULL,
|
---|
19 | `Rating` int DEFAULT NULL,
|
---|
20 | `Comment` text,
|
---|
21 | `FeedbackDate` date DEFAULT NULL,
|
---|
22 | `TransactionID` int DEFAULT NULL,
|
---|
23 | PRIMARY KEY (`FeedbackID`),
|
---|
24 | KEY `CustomerID` (`CustomerID`),
|
---|
25 | KEY `ProductID` (`ProductID`),
|
---|
26 | KEY `fk_feedback_transaction` (`TransactionID`),
|
---|
27 | CONSTRAINT `customerfeedback_ibfk_1` FOREIGN KEY (`CustomerID`) REFERENCES `customer` (`CustomerID`),
|
---|
28 | CONSTRAINT `customerfeedback_ibfk_2` FOREIGN KEY (`ProductID`) REFERENCES `product` (`ProductID`),
|
---|
29 | CONSTRAINT `fk_feedback_transaction` FOREIGN KEY (`TransactionID`) REFERENCES `procurement` (`TransactionID`),
|
---|
30 | CONSTRAINT `customerfeedback_chk_1` CHECK ((`Rating` between 1 and 5))
|
---|
31 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
---|
32 |
|
---|
33 | CREATE TABLE `employee` (
|
---|
34 | `EmployeeID` int NOT NULL,
|
---|
35 | `EmployeeName` varchar(100) DEFAULT NULL,
|
---|
36 | `EmployeeSurName` varchar(100) DEFAULT NULL,
|
---|
37 | `Position` varchar(100) DEFAULT NULL,
|
---|
38 | `Department` varchar(100) DEFAULT NULL,
|
---|
39 | `Email` varchar(100) DEFAULT NULL,
|
---|
40 | `Password` varchar(100) DEFAULT NULL,
|
---|
41 | PRIMARY KEY (`EmployeeID`)
|
---|
42 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
---|
43 |
|
---|
44 | CREATE TABLE `maintenance` (
|
---|
45 | `MainID` int NOT NULL,
|
---|
46 | `EmployeeID` int DEFAULT NULL,
|
---|
47 | `ProductID` int DEFAULT NULL,
|
---|
48 | `MainDate` date DEFAULT NULL,
|
---|
49 | `Description` text,
|
---|
50 | `Cost` decimal(10,2) DEFAULT NULL,
|
---|
51 | `Status` enum('Pending','Completed') DEFAULT 'Pending',
|
---|
52 | `StartTime` datetime DEFAULT CURRENT_TIMESTAMP,
|
---|
53 | `EndTime` datetime DEFAULT NULL,
|
---|
54 | PRIMARY KEY (`MainID`),
|
---|
55 | KEY `EmployeeID` (`EmployeeID`),
|
---|
56 | KEY `ProductID` (`ProductID`),
|
---|
57 | CONSTRAINT `maintenance_ibfk_1` FOREIGN KEY (`EmployeeID`) REFERENCES `employee` (`EmployeeID`),
|
---|
58 | CONSTRAINT `maintenance_ibfk_2` FOREIGN KEY (`ProductID`) REFERENCES `product` (`ProductID`)
|
---|
59 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
---|
60 |
|
---|
61 | CREATE TABLE `procurement` (
|
---|
62 | `TransactionID` int NOT NULL,
|
---|
63 | `EmployeeID` int DEFAULT NULL,
|
---|
64 | `CustomerID` int DEFAULT NULL,
|
---|
65 | `ProductID` int DEFAULT NULL,
|
---|
66 | `ProcurementDate` date DEFAULT NULL,
|
---|
67 | `Quantity` int DEFAULT NULL,
|
---|
68 | `Status` enum('Pending','Approved','Rejected') DEFAULT 'Pending',
|
---|
69 | `Notified` tinyint(1) DEFAULT '0',
|
---|
70 | `GroupID` varchar(255) DEFAULT NULL,
|
---|
71 | PRIMARY KEY (`TransactionID`),
|
---|
72 | KEY `EmployeeID` (`EmployeeID`),
|
---|
73 | KEY `CustomerID` (`CustomerID`),
|
---|
74 | KEY `ProductID` (`ProductID`),
|
---|
75 | CONSTRAINT `procurement_ibfk_1` FOREIGN KEY (`EmployeeID`) REFERENCES `employee` (`EmployeeID`),
|
---|
76 | CONSTRAINT `procurement_ibfk_2` FOREIGN KEY (`CustomerID`) REFERENCES `customer` (`CustomerID`),
|
---|
77 | CONSTRAINT `procurement_ibfk_3` FOREIGN KEY (`ProductID`) REFERENCES `product` (`ProductID`)
|
---|
78 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
---|
79 |
|
---|
80 | CREATE TABLE `product` (
|
---|
81 | `ProductID` int NOT NULL,
|
---|
82 | `Model` varchar(100) DEFAULT NULL,
|
---|
83 | `Price` decimal(10,2) DEFAULT NULL,
|
---|
84 | `LicensePlate` varchar(50) DEFAULT NULL,
|
---|
85 | `Status` enum('available','sold','rented','maintenance') NOT NULL,
|
---|
86 | PRIMARY KEY (`ProductID`)
|
---|
87 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
---|
88 |
|
---|
89 | CREATE TABLE `t_type` (
|
---|
90 | `TransactionID` int NOT NULL,
|
---|
91 | `Type` enum('Rent','Buy') NOT NULL,
|
---|
92 | `Duration` int DEFAULT NULL,
|
---|
93 | `MonthlyPay` decimal(10,2) DEFAULT NULL,
|
---|
94 | `TotalPrice` decimal(10,2) DEFAULT NULL,
|
---|
95 | PRIMARY KEY (`TransactionID`),
|
---|
96 | CONSTRAINT `t_type_ibfk_1` FOREIGN KEY (`TransactionID`) REFERENCES `procurement` (`TransactionID`)
|
---|
97 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
---|
98 |
|
---|
99 | CREATE TABLE `trailer` (
|
---|
100 | `ProductID` int NOT NULL,
|
---|
101 | `Capacity` decimal(10,2) DEFAULT NULL,
|
---|
102 | PRIMARY KEY (`ProductID`),
|
---|
103 | CONSTRAINT `trailer_ibfk_1` FOREIGN KEY (`ProductID`) REFERENCES `product` (`ProductID`)
|
---|
104 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
---|
105 |
|
---|
106 | CREATE TABLE `truck` (
|
---|
107 | `ProductID` int NOT NULL,
|
---|
108 | `HP` int DEFAULT NULL,
|
---|
109 | PRIMARY KEY (`ProductID`),
|
---|
110 | CONSTRAINT `truck_ibfk_1` FOREIGN KEY (`ProductID`) REFERENCES `product` (`ProductID`)
|
---|
111 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
---|
112 |
|
---|
113 | CREATE TABLE `views` (
|
---|
114 | `CustomerID` int NOT NULL,
|
---|
115 | `ProductID` int NOT NULL,
|
---|
116 | PRIMARY KEY (`CustomerID`,`ProductID`),
|
---|
117 | KEY `ProductID` (`ProductID`),
|
---|
118 | CONSTRAINT `views_ibfk_1` FOREIGN KEY (`CustomerID`) REFERENCES `customer` (`CustomerID`),
|
---|
119 | CONSTRAINT `views_ibfk_2` FOREIGN KEY (`ProductID`) REFERENCES `product` (`ProductID`)
|
---|
120 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
---|
121 |
|
---|
122 | CREATE TABLE `wallet` (
|
---|
123 | `WalletID` int NOT NULL AUTO_INCREMENT,
|
---|
124 | `CustomerID` int NOT NULL,
|
---|
125 | `Balance` decimal(10,2) NOT NULL DEFAULT '0.00',
|
---|
126 | `CardNumber` varchar(16) DEFAULT NULL,
|
---|
127 | `ExpiryDate` date DEFAULT NULL,
|
---|
128 | `CVV` varchar(4) DEFAULT NULL,
|
---|
129 | `CardHolderName` varchar(100) DEFAULT NULL,
|
---|
130 | PRIMARY KEY (`WalletID`),
|
---|
131 | KEY `CustomerID` (`CustomerID`),
|
---|
132 | CONSTRAINT `wallet_ibfk_1` FOREIGN KEY (`CustomerID`) REFERENCES `customer` (`CustomerID`)
|
---|
133 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
---|
134 |
|
---|
135 | -- VIEWS
|
---|
136 | CREATE VIEW `aktivniprodukti` AS
|
---|
137 | SELECT `product`.`ProductID` AS `ProductID`,
|
---|
138 | `product`.`Model` AS `Model`,
|
---|
139 | `product`.`Price` AS `Price`,
|
---|
140 | `product`.`LicensePlate` AS `LicensePlate`
|
---|
141 | FROM `product`
|
---|
142 | WHERE (`product`.`Status` = 'available');
|
---|