Skip to content

Commit 50fbaa7

Browse files
Refactor database schema
1 parent e70cd8c commit 50fbaa7

File tree

1 file changed

+221
-57
lines changed

1 file changed

+221
-57
lines changed

database/schema.sql

Lines changed: 221 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,221 @@
1-
CREATE DATABASE lms_db;
2-
USE lms_db;
3-
4-
CREATE TABLE users (
5-
id INT PRIMARY KEY AUTO_INCREMENT,
6-
username VARCHAR(255),
7-
password VARCHAR(255),
8-
level VARCHAR(255),
9-
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
10-
);
11-
12-
CREATE TABLE customers (
13-
id INT PRIMARY KEY AUTO_INCREMENT,
14-
fullname VARCHAR(255),
15-
address VARCHAR(255),
16-
contact VARCHAR(255),
17-
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
18-
);
19-
20-
CREATE TABLE transactions (
21-
id INT PRIMARY KEY AUTO_INCREMENT,
22-
user_id INT,
23-
customer_id INT,
24-
kilo DOUBLE,
25-
type VARCHAR(255),
26-
status VARCHAR(255),
27-
FOREIGN KEY (user_id) REFERENCES users(id),
28-
FOREIGN KEY (customer_id) REFERENCES customers(id)
29-
);
30-
31-
CREATE TABLE items (
32-
id INT PRIMARY KEY AUTO_INCREMENT,
33-
name VARCHAR(255),
34-
price DOUBLE,
35-
stock INT,
36-
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
37-
);
38-
39-
CREATE TABLE prices (
40-
id INT PRIMARY KEY AUTO_INCREMENT,
41-
name VARCHAR(255),
42-
price DOUBLE,
43-
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
44-
);
45-
46-
CREATE TABLE expenditures (
47-
id INT PRIMARY KEY AUTO_INCREMENT,
48-
user_id INT,
49-
item_id INT,
50-
transaction_id INT,
51-
qty INT,
52-
total DOUBLE,
53-
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
54-
FOREIGN KEY (user_id) REFERENCES users(id),
55-
FOREIGN KEY (item_id) REFERENCES items(id),
56-
FOREIGN KEY (transaction_id) REFERENCES transactions(id)
57-
);
1+
SET
2+
SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
3+
4+
START TRANSACTION;
5+
6+
SET
7+
time_zone = "+00:00";
8+
9+
CREATE DATABASE IF NOT EXISTS `lms_db` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
10+
11+
USE `lms_db`;
12+
13+
CREATE TABLE `customers` (
14+
`id` int(11) NOT NULL,
15+
`fullname` varchar(255) DEFAULT NULL,
16+
`address` varchar(255) DEFAULT NULL,
17+
`contact` varchar(255) DEFAULT NULL,
18+
`created_at` datetime DEFAULT current_timestamp()
19+
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci;
20+
21+
CREATE TABLE `expenditures` (
22+
`id` int(11) NOT NULL,
23+
`user_id` int(11) DEFAULT NULL,
24+
`item_id` int(11) DEFAULT NULL,
25+
`transaction_id` int(11) DEFAULT NULL,
26+
`qty` int(11) DEFAULT NULL,
27+
`created_at` datetime DEFAULT current_timestamp()
28+
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci;
29+
30+
CREATE TABLE `items` (
31+
`id` int(11) NOT NULL,
32+
`name` varchar(255) DEFAULT NULL,
33+
`unit` varchar(255) DEFAULT NULL,
34+
`stock` int(11) DEFAULT NULL,
35+
`created_at` datetime DEFAULT current_timestamp()
36+
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci;
37+
38+
CREATE TABLE `laundry` (
39+
`id` int(11) NOT NULL,
40+
`transaction_id` int(11) DEFAULT NULL,
41+
`kilo` double DEFAULT NULL,
42+
`type` int(11) DEFAULT NULL,
43+
`status` varchar(255) DEFAULT NULL,
44+
`created_at` datetime DEFAULT current_timestamp()
45+
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci;
46+
47+
CREATE TABLE `logs` (
48+
`id` int(11) NOT NULL,
49+
`user_id` int(11) DEFAULT NULL,
50+
`logs` text DEFAULT NULL,
51+
`type` text DEFAULT NULL,
52+
`created_at` datetime DEFAULT current_timestamp()
53+
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci;
54+
55+
CREATE TABLE `prices` (
56+
`id` int(11) NOT NULL,
57+
`name` varchar(255) DEFAULT NULL,
58+
`price` decimal(10, 2) DEFAULT NULL,
59+
`created_at` datetime DEFAULT current_timestamp()
60+
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci;
61+
62+
CREATE TABLE `transactions` (
63+
`id` int(11) NOT NULL,
64+
`user_id` int(11) DEFAULT NULL,
65+
`customer_id` int(11) DEFAULT NULL,
66+
`total` decimal(10, 2) DEFAULT NULL,
67+
`status` varchar(255) DEFAULT NULL,
68+
`created_at` datetime DEFAULT current_timestamp()
69+
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci;
70+
71+
CREATE TABLE `users` (
72+
`id` int(11) NOT NULL,
73+
`username` varchar(255) DEFAULT NULL,
74+
`password` varchar(255) DEFAULT NULL,
75+
`level` varchar(255) DEFAULT NULL,
76+
`created_at` datetime DEFAULT current_timestamp()
77+
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci;
78+
79+
INSERT INTO
80+
`users` (
81+
`id`,
82+
`username`,
83+
`password`,
84+
`level`,
85+
`created_at`
86+
)
87+
VALUES
88+
(
89+
1,
90+
'admin',
91+
'$2y$10$WgL2d2fzi6IiGiTfXvdBluTLlMroU8zBtIcRut7SzOB6j9i/LbA4K',
92+
'0',
93+
'2023-11-21 04:55:20'
94+
);
95+
96+
ALTER TABLE
97+
`customers`
98+
ADD
99+
PRIMARY KEY (`id`);
100+
101+
ALTER TABLE
102+
`expenditures`
103+
ADD
104+
PRIMARY KEY (`id`),
105+
ADD
106+
KEY `user_id` (`user_id`),
107+
ADD
108+
KEY `item_id` (`item_id`),
109+
ADD
110+
KEY `transaction_id` (`transaction_id`);
111+
112+
ALTER TABLE
113+
`items`
114+
ADD
115+
PRIMARY KEY (`id`);
116+
117+
ALTER TABLE
118+
`laundry`
119+
ADD
120+
PRIMARY KEY (`id`),
121+
ADD
122+
KEY `transaction_id` (`transaction_id`),
123+
ADD
124+
KEY `type` (`type`);
125+
126+
ALTER TABLE
127+
`logs`
128+
ADD
129+
PRIMARY KEY (`id`),
130+
ADD
131+
KEY `user_id` (`user_id`);
132+
133+
ALTER TABLE
134+
`prices`
135+
ADD
136+
PRIMARY KEY (`id`);
137+
138+
ALTER TABLE
139+
`transactions`
140+
ADD
141+
PRIMARY KEY (`id`),
142+
ADD
143+
KEY `user_id` (`user_id`),
144+
ADD
145+
KEY `customer_id` (`customer_id`);
146+
147+
ALTER TABLE
148+
`users`
149+
ADD
150+
PRIMARY KEY (`id`);
151+
152+
ALTER TABLE
153+
`customers`
154+
MODIFY
155+
`id` int(11) NOT NULL AUTO_INCREMENT;
156+
157+
ALTER TABLE
158+
`expenditures`
159+
MODIFY
160+
`id` int(11) NOT NULL AUTO_INCREMENT;
161+
162+
ALTER TABLE
163+
`items`
164+
MODIFY
165+
`id` int(11) NOT NULL AUTO_INCREMENT;
166+
167+
ALTER TABLE
168+
`laundry`
169+
MODIFY
170+
`id` int(11) NOT NULL AUTO_INCREMENT;
171+
172+
ALTER TABLE
173+
`logs`
174+
MODIFY
175+
`id` int(11) NOT NULL AUTO_INCREMENT;
176+
177+
ALTER TABLE
178+
`prices`
179+
MODIFY
180+
`id` int(11) NOT NULL AUTO_INCREMENT;
181+
182+
ALTER TABLE
183+
`transactions`
184+
MODIFY
185+
`id` int(11) NOT NULL AUTO_INCREMENT;
186+
187+
ALTER TABLE
188+
`users`
189+
MODIFY
190+
`id` int(11) NOT NULL AUTO_INCREMENT,
191+
AUTO_INCREMENT = 2;
192+
193+
ALTER TABLE
194+
`expenditures`
195+
ADD
196+
CONSTRAINT `expenditures_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
197+
ADD
198+
CONSTRAINT `expenditures_ibfk_2` FOREIGN KEY (`item_id`) REFERENCES `items` (`id`) ON DELETE CASCADE,
199+
ADD
200+
CONSTRAINT `expenditures_ibfk_3` FOREIGN KEY (`transaction_id`) REFERENCES `transactions` (`id`) ON DELETE CASCADE;
201+
202+
ALTER TABLE
203+
`laundry`
204+
ADD
205+
CONSTRAINT `laundry_ibfk_1` FOREIGN KEY (`transaction_id`) REFERENCES `transactions` (`id`) ON DELETE CASCADE,
206+
ADD
207+
CONSTRAINT `laundry_ibfk_2` FOREIGN KEY (`type`) REFERENCES `prices` (`id`) ON DELETE CASCADE;
208+
209+
ALTER TABLE
210+
`logs`
211+
ADD
212+
CONSTRAINT `logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;
213+
214+
ALTER TABLE
215+
`transactions`
216+
ADD
217+
CONSTRAINT `transactions_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
218+
ADD
219+
CONSTRAINT `transactions_ibfk_2` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`) ON DELETE CASCADE;
220+
221+
COMMIT;

0 commit comments

Comments
 (0)