-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAPI_Task_DB.sql
More file actions
66 lines (47 loc) · 2.38 KB
/
Copy pathAPI_Task_DB.sql
File metadata and controls
66 lines (47 loc) · 2.38 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
CREATE TABLE `countries` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`code` varchar(255) UNIQUE,
`name` varchar(255)
);
CREATE TABLE `buildings` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`country_id` int,
`name` varchar(255)
);
CREATE TABLE `departments` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`name` varchar(255) UNIQUE
);
CREATE TABLE `employees` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`first_name` varchar(255),
`last_name` varchar(255),
`rfid_card_id` int UNIQUE NOT NULL
);
CREATE TABLE `rfid_cards` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`code` varchar(255) UNIQUE
);
CREATE TABLE `building_departments` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`building_id` int,
`department_id` int
);
CREATE TABLE `employee_department_access` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`employee_id` int,
`department_id` int
);
CREATE INDEX `idx-buildings-country_id` ON `buildings` (`country_id`);
CREATE INDEX `idx-employees-rfid_card_id` ON `employees` (`rfid_card_id`);
CREATE INDEX `idx-rfid_cards-code` ON `rfid_cards` (`code`);
CREATE INDEX `idx-building_departments-building_id` ON `building_departments` (`building_id`);
CREATE INDEX `idx-building_departments-department_id` ON `building_departments` (`department_id`);
CREATE INDEX `idx-employee_department_access-employee_id` ON `employee_department_access` (`employee_id`);
CREATE INDEX `idx-employee_department_access-department_id` ON `employee_department_access` (`department_id`);
ALTER TABLE `buildings` ADD CONSTRAINT `fk_buildings_country_id_countries_id` FOREIGN KEY (`country_id`) REFERENCES `countries` (`id`);
ALTER TABLE `building_departments` ADD CONSTRAINT `fk_building_departments_building_id_buildings_id` FOREIGN KEY (`building_id`) REFERENCES `buildings` (`id`);
ALTER TABLE `building_departments` ADD CONSTRAINT `fk_building_departments_department_id_departments_id` FOREIGN KEY (`department_id`) REFERENCES `departments` (`id`);
ALTER TABLE `employees` ADD CONSTRAINT `fk_employees_rfid_card_id_rfid_cards_id` FOREIGN KEY (`rfid_card_id`) REFERENCES `rfid_cards` (`id`);
ALTER TABLE `employee_department_access` ADD CONSTRAINT `fk_employee_department_access_employee_id_employees_id` FOREIGN KEY (`employee_id`) REFERENCES `employees` (`id`);
ALTER TABLE `employee_department_access` ADD CONSTRAINT `fk_employee_department_access_department_id_departments_id` FOREIGN KEY (`department_id`) REFERENCES `departments` (`id`);