Projekt

Obecné

Profil

Stáhnout (6.26 KB) Statistiky
| Větev: | Tag: | Revize:
1
-- -----------------------------------------------------
2
-- Table Rights
3
-- -----------------------------------------------------
4
DROP TABLE IF EXISTS Rights;
5
CREATE TABLE Rights (
6
  id INT NOT NULL AUTO_INCREMENT,
7
  right_name VARCHAR(45) NOT NULL,
8
  description TEXT,
9
  PRIMARY KEY (id)
10
);
11

    
12
-- -----------------------------------------------------
13
-- Table Roles
14
-- -----------------------------------------------------
15
DROP TABLE IF EXISTS Roles;
16
CREATE TABLE Roles (
17
  id INT NOT NULL AUTO_INCREMENT,
18
  role_name VARCHAR(45) NOT NULL,
19
  PRIMARY KEY (id)
20
);
21

    
22
-- -----------------------------------------------------
23
-- Table Has_rights
24
-- -----------------------------------------------------
25
DROP TABLE IF EXISTS Has_rights;
26
CREATE TABLE Has_rights (
27
  id INT NOT NULL AUTO_INCREMENT,
28
  role_id INT NOT NULL,
29
  right_id INT NOT NULL,
30
  PRIMARY KEY (id),
31
  INDEX fk_Has_rights_Roles1 (role_id ASC),
32
  INDEX fk_Has_rights_Rights1 (right_id ASC),
33
  CONSTRAINT fk_Has_rights_Roles1 FOREIGN KEY (role_id)
34
    REFERENCES Roles (id)
35
    ON DELETE CASCADE ON UPDATE CASCADE,
36
  CONSTRAINT fk_Has_rights_Rights1 FOREIGN KEY (right_id)
37
    REFERENCES Rights (id)
38
    ON DELETE CASCADE ON UPDATE CASCADE
39
);
40

    
41
-- -----------------------------------------------------
42
-- Table Approval_status
43
-- -----------------------------------------------------
44
DROP TABLE IF EXISTS Approval_status;
45
CREATE TABLE Approval_status (
46
  id INT NOT NULL AUTO_INCREMENT,
47
  status_name VARCHAR(45) NOT NULL,
48
  PRIMARY KEY (id)
49
);
50

    
51
-- -----------------------------------------------------
52
-- Table Users
53
-- -----------------------------------------------------
54
DROP TABLE IF EXISTS Users;
55
CREATE TABLE Users (
56
  id INT NOT NULL AUTO_INCREMENT,
57
  first_name VARCHAR(45) NOT NULL,
58
  last_name VARCHAR(45) NOT NULL,
59
  no_vacations INT NOT NULL,
60
  no_sick_days INT NOT NULL,
61
  alert DATE,
62
  token TEXT UNIQUE NOT NULL,
63
  email VARCHAR(45) UNIQUE NOT NULL,
64
  photo TEXT,
65
  role_id INT NOT NULL,
66
  status_id INT NOT NULL,
67
  PRIMARY KEY (id),
68
  INDEX fk_Users_Roles1 (role_id ASC),
69
  INDEX fk_Users_Approval_status1 (status_id ASC),
70
  CONSTRAINT fk_Users_Roles1 FOREIGN KEY (role_id)
71
    REFERENCES Roles (id)
72
    ON DELETE CASCADE ON UPDATE CASCADE,
73
  CONSTRAINT fk_Users_Approval_status FOREIGN KEY (status_id)
74
    REFERENCES Approval_status (id)
75
    ON DELETE NO ACTION ON UPDATE CASCADE,
76
  CONSTRAINT check_no_vacation CHECK (no_vacations >= 0),
77
  CONSTRAINT check_no_sick_days CHECK (no_sick_days >= 0),
78
  CONSTRAINT check_email CHECK (email = '%_@__%.__%')
79
);
80

    
81
-- -----------------------------------------------------
82
-- Table Sick_Days
83
-- -----------------------------------------------------
84
DROP TABLE IF EXISTS Sick_days;
85
CREATE TABLE Sick_days (
86
  id INT NOT NULL AUTO_INCREMENT,
87
  sick_date DATE NOT NULL,
88
  user_id INT NOT NULL,
89
  status_id INT NOT NULL,
90
  PRIMARY KEY (id),
91
  INDEX fk_Sick_days_Approval_status1 (status_id ASC),
92
  INDEX fk_Sick_days_Users1 (user_id ASC),
93
  CONSTRAINT  fk_Sick_days_Approval_status1 FOREIGN KEY (status_id)
94
    REFERENCES Approval_status (id)
95
    ON DELETE NO ACTION ON UPDATE CASCADE,
96
  CONSTRAINT fk_Sick_days_Users1 FOREIGN KEY (user_id)
97
    REFERENCES Users (id)
98
    ON DELETE CASCADE ON UPDATE CASCADE
99
);
100

    
101
-- -----------------------------------------------------
102
-- Table Vacation_days
103
-- -----------------------------------------------------
104
DROP TABLE IF EXISTS Vacation_days;
105
CREATE TABLE Vacation_days (
106
  id INT NOT NULL AUTO_INCREMENT,
107
  vacation_date DATE NOT NULL,
108
  time_from TIME,
109
  time_to TIME,
110
  user_id INT NOT NULL,
111
  status_id INT NOT NULL,
112
  PRIMARY KEY (id),
113
  INDEX fk_Vacation_days_Approval_status1 (status_id ASC),
114
  INDEX fk_Vacation_days_Users1 (user_id ASC),
115
  CONSTRAINT fk_Vacation_days_Approval_status1 FOREIGN KEY (status_id)
116
    REFERENCES Approval_status (id)
117
    ON DELETE NO ACTION ON UPDATE CASCADE,
118
  CONSTRAINT fk_Vacation_days_Users1 FOREIGN KEY (user_id)
119
    REFERENCES Users (id)
120
    ON DELETE CASCADE ON UPDATE CASCADE,
121
  CONSTRAINT check_time CHECK (time_from < time_to)
122
);
123

    
124
-- -----------------------------------------------------
125
-- Table Default_Settings
126
-- -----------------------------------------------------
127
DROP TABLE IF EXISTS Default_settings;
128
CREATE TABLE Default_settings (
129
  id INT NOT NULL AUTO_INCREMENT,
130
  no_vacations INT NOT NULL,
131
  no_sick_days INT NOT NULL,
132
  alert DATE NOT NULL,
133
  PRIMARY KEY (id),
134
  CONSTRAINT check_no_vacation CHECK (no_vacations >= 0),
135
  CONSTRAINT check_no_sick_days CHECK (no_sick_days >= 0)
136
);
137

    
138
-- -----------------------------------------------------
139
-- Insert table Rights
140
-- -----------------------------------------------------
141
-- INSERT INTO Rights (right_name, description) VALUES ();
142

    
143
-- -----------------------------------------------------
144
-- Insert table Roles
145
-- -----------------------------------------------------
146
INSERT INTO Roles (role_name) VALUES ('employee');
147
INSERT INTO Roles (role_name) VALUES ('employer');
148

    
149
-- -----------------------------------------------------
150
-- Insert table Has_rights
151
-- -----------------------------------------------------
152
-- INSERT INTO Has_rights (role_id, right_id) VALUES ();
153

    
154
-- -----------------------------------------------------
155
-- Insert table Approval_status
156
-- -----------------------------------------------------
157
INSERT INTO Approval_status (status_name) VALUES ('accepted');
158
INSERT INTO Approval_status (status_name) VALUES ('pending');
159
INSERT INTO Approval_status (status_name) VALUES ('rejected');
160

    
161
-- -----------------------------------------------------
162
-- Insert table Users
163
-- -----------------------------------------------------
164
-- INSERT INTO Users (first_name, last_name, no_vacations, no_sick_days, token, email, role_id, status_id) VALUES ();
165

    
166
-- -----------------------------------------------------
167
-- Insert table Sick_days
168
-- -----------------------------------------------------
169
-- INSERT INTO Sick_days (sick_date, user_id, status_id) VALUES ();
170

    
171
-- -----------------------------------------------------
172
-- Insert table Vacation_days
173
-- -----------------------------------------------------
174
-- INSERT INTO Vacation_days (vacation_date, time_from, time_to, user_id, status_id) VALUES ();
175

    
176
-- -----------------------------------------------------
177
-- Insert table Default_Settings
178
-- -----------------------------------------------------
179
INSERT INTO Default_settings (no_vacations, no_sick_days, alert) VALUES (0, 5, '2019-12-01');
(1-1/2)