Projekt

Obecné

Profil

Stáhnout (4.74 KB) Statistiky
| Větev: | Tag: | Revize:
1
-- -----------------------------------------------------
2
-- Table role
3
-- -----------------------------------------------------
4
DROP TABLE IF EXISTS role;
5
CREATE TABLE role (
6
  id TINYINT NOT NULL AUTO_INCREMENT,
7
  name VARCHAR(8) NOT NULL,
8
  PRIMARY KEY (id)
9
);
10

    
11
-- -----------------------------------------------------
12
-- Table approval_status
13
-- -----------------------------------------------------
14
DROP TABLE IF EXISTS approval_status;
15
CREATE TABLE approval_status (
16
  id TINYINT NOT NULL AUTO_INCREMENT,
17
  name VARCHAR(8) NOT NULL,
18
  PRIMARY KEY (id)
19
);
20

    
21
-- -----------------------------------------------------
22
-- Table vacation_type
23
-- -----------------------------------------------------
24
DROP TABLE IF EXISTS vacation_type;
25
CREATE TABLE vacation_type (
26
  id TINYINT NOT NULL AUTO_INCREMENT,
27
  name VARCHAR(8) NOT NULL,
28
  PRIMARY KEY (id)
29
);
30

    
31
-- -----------------------------------------------------
32
-- Table end_user
33
-- -----------------------------------------------------
34
DROP TABLE IF EXISTS end_user;
35
CREATE TABLE end_user (
36
  id BIGINT NOT NULL AUTO_INCREMENT,
37
  first_name VARCHAR(45) NOT NULL,
38
  last_name VARCHAR(45) NOT NULL,
39
  no_vacations FLOAT,
40
  no_sick_days SMALLINT,
41
  alert DATETIME,
42
  token TEXT NOT NULL,
43
  email VARCHAR(45) NOT NULL,
44
  photo TEXT,
45
  creation_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
46
  role_id TINYINT NOT NULL,
47
  status_id TINYINT NOT NULL,
48
  PRIMARY KEY (id),
49
  INDEX fk_end_user_role (role_id ASC),
50
  INDEX fk_end_user_approval_status (status_id ASC),
51
  CONSTRAINT fk_end_user_role FOREIGN KEY (role_id)
52
    REFERENCES role (id)
53
    ON DELETE CASCADE ON UPDATE CASCADE,
54
  CONSTRAINT fk_end_user_approval_status FOREIGN KEY (status_id)
55
    REFERENCES approval_status (id)
56
    ON DELETE NO ACTION ON UPDATE CASCADE,
57
  CONSTRAINT check_no_vacation CHECK (no_vacations >= 0),
58
  CONSTRAINT check_no_sick_days CHECK (no_sick_days >= 0),
59
  CONSTRAINT check_email CHECK (email = '%_@__%.__%')
60
);
61

    
62
-- -----------------------------------------------------
63
-- Table vacation_day
64
-- -----------------------------------------------------
65
DROP TABLE IF EXISTS vacation_day;
66
CREATE TABLE vacation_day (
67
  id BIGINT NOT NULL AUTO_INCREMENT,
68
  vacation_date DATE NOT NULL,
69
  time_from TIME,
70
  time_to TIME,
71
  creation_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
72
  user_id BIGINT NOT NULL,
73
  status_id TINYINT NOT NULL,
74
  type_id TINYINT NOT NULL,
75
  PRIMARY KEY (id),
76
  INDEX fk_vacation_day_approval_status (status_id ASC),
77
  INDEX fk_vacation_day_end_user (user_id ASC),
78
  CONSTRAINT fk_vacation_day_approval_status FOREIGN KEY (status_id)
79
    REFERENCES approval_status (id)
80
    ON DELETE NO ACTION ON UPDATE CASCADE,
81
  CONSTRAINT fk_vacation_day_end_user FOREIGN KEY (user_id)
82
    REFERENCES end_user (id)
83
    ON DELETE CASCADE ON UPDATE CASCADE,
84
  CONSTRAINT check_time CHECK (time_from < time_to)
85
);
86

    
87
-- -----------------------------------------------------
88
-- Table Default_Settings
89
-- -----------------------------------------------------
90
DROP TABLE IF EXISTS default_settings;
91
CREATE TABLE default_settings (
92
  id BIGINT NOT NULL AUTO_INCREMENT,
93
  no_sick_days SMALLINT NOT NULL,
94
  alert DATETIME NOT NULL,
95
  creation_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
96
  PRIMARY KEY (id),
97
  CONSTRAINT check_no_sick_days CHECK (no_sick_days >= 0)
98
);
99

    
100
-- -----------------------------------------------------
101
-- Insert table role
102
-- -----------------------------------------------------
103
INSERT INTO role (name) VALUES ('employee');
104
INSERT INTO role (name) VALUES ('employer');
105

    
106
-- -----------------------------------------------------
107
-- Insert table approval_status
108
-- -----------------------------------------------------
109
INSERT INTO approval_status (name) VALUES ('accepted');
110
INSERT INTO approval_status (name) VALUES ('pending');
111
INSERT INTO approval_status (name) VALUES ('rejected');
112

    
113
-- -----------------------------------------------------
114
-- Insert table vacation_type
115
-- -----------------------------------------------------
116
INSERT INTO vacation_type (name) VALUES ('sickday');
117
INSERT INTO vacation_type (name) VALUES ('vacation');
118

    
119
-- -----------------------------------------------------
120
-- Insert table end_user
121
-- -----------------------------------------------------
122
-- INSERT INTO end_user (first_name, last_name, no_vacations, no_sick_days, alert, token, email, photo, role_id, status_id) VALUES ();
123

    
124
-- -----------------------------------------------------
125
-- Insert table vacation_day
126
-- -----------------------------------------------------
127
-- INSERT INTO vacation_day (vacation_date, time_from, time_to, user_id, status_id, type_id) VALUES ();
128

    
129
-- -----------------------------------------------------
130
-- Insert table default_settings
131
-- -----------------------------------------------------
132
INSERT INTO default_settings (no_sick_days, alert) VALUES (5, '2019-12-01 12:00:00.000');
(4-4/6)