-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtables.sql
83 lines (73 loc) · 2.18 KB
/
tables.sql
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
CREATE TABLE Employee (
eid INT(11) AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(60) NOT NULL,
email VARCHAR(60) NOT NULL UNIQUE,
phone VARCHAR(20),
password VARCHAR(255) NOT NULL, -- future-proofing for larger password hashes
hourlyWage FLOAT NOT NULL DEFAULT 0,
qualifiesOvertime BOOLEAN NOT NULL DEFAULT 0
);
CREATE TABLE Client (
cid INT(11) AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
alias VARCHAR(10),
address TEXT,
contactPhone VARCHAR(20),
contactEmail VARCHAR(60),
paysOvertime BOOLEAN
);
CREATE TABLE Disability (
did INT(11) AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20),
qualifiesForTaxBreak BOOLEAN
);
CREATE TABLE hasDisability (
eid INT(11),
did INT(11),
PRIMARY KEY (eid, did),
FOREIGN KEY (eid) REFERENCES Employee(eid) ON UPDATE CASCADE,
FOREIGN KEY (did) REFERENCES Disability(did) ON UPDATE CASCADE
);
CREATE TABLE Position (
pid INT(11) AUTO_INCREMENT PRIMARY KEY,
cid INT(11),
name VARCHAR(20),
alias VARCHAR(10),
unitHourlyPrice FLOAT,
FOREIGN KEY (cid) REFERENCES Client(cid) ON UPDATE CASCADE
);
CREATE TABLE hasPosition (
eid INT(11),
pid INT(11),
since DATE,
until DATE,
PRIMARY KEY (eid, pid),
FOREIGN KEY (eid) REFERENCES Employee(eid) ON UPDATE CASCADE,
FOREIGN KEY (pid) REFERENCES `Position`(pid) ON UPDATE CASCADE
);
CREATE TABLE ClockIn (
ciid INT(11) AUTO_INCREMENT PRIMARY KEY,
eid INT(11),
pid INT(11),
entered TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (eid) REFERENCES Employee(eid) ON UPDATE CASCADE
FOREIGN KEY (pid) REFERENCES `Position`(pid) ON UPDATE CASCADE
);
CREATE TABLE ClockOut (
coid INT(11) AUTO_INCREMENT PRIMARY KEY,
ciid INT(11),
`comment` TEXT,
`left` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
approved BOOLEAN,
FOREIGN KEY (ciid) REFERENCES ClockIn(ciid) ON UPDATE CASCADE
);
# Insert Bucket Client
INSERT INTO Client
(`cid`, `name`, `alias`, `address`, `contactPhone`, `contactEmail`, `paysOvertime`)
VALUES
(0, 'Sky Shield Security', 'SKY', 'Sonny Hernandez Inc.
Calle D #20
Ext. Villa Verde
Cayey, PR 00736', '9396302780', '[email protected]', 1);
# Insert Bucket Position
INSERT INTO Position (`pid`, `cid`, `name`, `alias`, `unitHourlyPrice`) VALUES (0, 0, 'Independent Work', 'IW', 10);