-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtracktimedb.sql
85 lines (65 loc) · 2.55 KB
/
tracktimedb.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
84
/********************* ROLES **********************/
/********************* UDFS ***********************/
/********************* FUNCTIONS ***********************/
/****************** SEQUENCES ********************/
/******************** DOMAINS *********************/
/******************* PROCEDURES ******************/
/******************* PACKAGES ******************/
/******************** TABLES **********************/
CREATE TABLE CUSTOMER
(
CUSTOMER_ID bigint GENERATED BY DEFAULT AS IDENTITY (START WITH 1) NOT NULL,
CUSTOMER_NAME varchar(50) NOT NULL,
PHONE varchar(20),
EMAIL varchar(100),
CUSTOMER_STATE integer NOT NULL,
NOTES blob sub_type 1,
CONSTRAINT PK_CUSTOMER_ID PRIMARY KEY (CUSTOMER_ID)
);
CREATE TABLE TIME_ENTRY
(
TIME_ENTRY_ID bigint GENERATED BY DEFAULT AS IDENTITY (START WITH 1) NOT NULL,
DESCRIPTION varchar(100),
TIME_START timestamp NOT NULL,
TIME_END timestamp,
BEEN_BILLED boolean NOT NULL,
NOTES blob sub_type 1,
WORK_ITEM_ID bigint,
CONSTRAINT PK_TIME_ENTRY_ID PRIMARY KEY (TIME_ENTRY_ID)
);
CREATE TABLE WORK_ITEM
(
WORK_ITEM_ID bigint GENERATED BY DEFAULT AS IDENTITY (START WITH 1) NOT NULL,
TITLE varchar(50) NOT NULL,
DESCRIPTION varchar(100),
IS_BILLABLE boolean NOT NULL,
IS_COMPLETED boolean NOT NULL,
IS_FIXED_PRICE boolean NOT NULL,
DATE_CREATED date NOT NULL,
DUE_DATE date,
BEEN_BILLED boolean NOT NULL,
NOTES blob sub_type 1,
CUSTOMER_ID bigint NOT NULL,
CONSTRAINT PK_WORK_ITEM_ID PRIMARY KEY (WORK_ITEM_ID)
);
/********************* VIEWS **********************/
/******************* EXCEPTIONS *******************/
/******************** TRIGGERS ********************/
/******************** DB TRIGGERS ********************/
/******************** DDL TRIGGERS ********************/
ALTER TABLE TIME_ENTRY ADD CONSTRAINT FK_TIME_ENTRY_WORK_ITEM_ID
FOREIGN KEY (WORK_ITEM_ID) REFERENCES WORK_ITEM (WORK_ITEM_ID) ON DELETE CASCADE;
ALTER TABLE WORK_ITEM ADD CONSTRAINT FK_WORK_ITEM_CUSTOMER_ID
FOREIGN KEY (CUSTOMER_ID) REFERENCES CUSTOMER (CUSTOMER_ID) ON DELETE CASCADE;
GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE
ON CUSTOMER TO "PUBLIC";
GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE
ON CUSTOMER TO SYSDBA WITH GRANT OPTION;
GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE
ON TIME_ENTRY TO "PUBLIC";
GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE
ON TIME_ENTRY TO SYSDBA WITH GRANT OPTION;
GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE
ON WORK_ITEM TO "PUBLIC";
GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE
ON WORK_ITEM TO SYSDBA WITH GRANT OPTION;