|
1 | 1 | -- Meant for PostgreSQL -- |
2 | 2 |
|
3 | | -DROP TABLE product; |
4 | | -DROP TABLE product_category; |
5 | | -DROP TABLE employee_department; |
6 | | -DROP TABLE department; |
7 | | -DROP TABLE employee; |
8 | | -DROP TABLE company; |
| 3 | +-- (re)create tables first |
9 | 4 |
|
| 5 | +DROP TABLE ProjectEmployee; |
| 6 | +DROP TABLE Project; |
| 7 | +DROP TABLE Employee; |
| 8 | +DROP TABLE Department; |
| 9 | +DROP TABLE Company; |
10 | 10 |
|
11 | | -CREATE TABLE company ( |
| 11 | +CREATE TABLE Company ( |
12 | 12 | pid SERIAL PRIMARY KEY, |
13 | 13 | name VARCHAR(40) NOT NULL, |
14 | 14 | address VARCHAR(128) |
15 | 15 | ); |
16 | 16 |
|
17 | | -CREATE TABLE employee ( |
18 | | - pid SERIAL PRIMARY KEY, |
19 | | - company_pid INTEGER NOT NULL REFERENCES company (pid) ON DELETE CASCADE, |
20 | | - name varchar(50) NOT NULL, |
21 | | - surname varchar(50) NOT NULL, |
22 | | - mail varchar(50), |
23 | | - salary numeric(10,2) CHECK (salary > 0) |
24 | | -); |
25 | | - |
26 | | -CREATE TABLE department ( |
| 17 | +CREATE TABLE Department ( |
27 | 18 | pid SERIAL PRIMARY KEY, |
| 19 | + company_pid INTEGER NOT NULL REFERENCES Company (pid) ON DELETE CASCADE, |
28 | 20 | name varchar(50) NOT NULL |
29 | 21 | ); |
30 | 22 |
|
31 | | -CREATE TABLE employee_department ( |
32 | | - employee_pid INTEGER NOT NULL REFERENCES employee (pid) ON DELETE CASCADE, |
33 | | - department_pid INTEGER NOT NULL REFERENCES department (pid) ON DELETE CASCADE, |
34 | | - UNIQUE (employee_pid, department_pid) |
35 | | -); |
36 | | - |
37 | | -CREATE TABLE product_category ( |
| 23 | +CREATE TABLE Employee ( |
38 | 24 | pid SERIAL PRIMARY KEY, |
39 | | - category varchar(50) NOT NULL |
| 25 | + department_pid INTEGER NOT NULL REFERENCES Department (pid) ON DELETE CASCADE, |
| 26 | + name varchar(50) NOT NULL, |
| 27 | + surname varchar(50) NOT NULL, |
| 28 | + email varchar(50), |
| 29 | + salary numeric(10,2) CHECK (salary > 0) |
40 | 30 | ); |
41 | 31 |
|
42 | | -CREATE TABLE product ( |
| 32 | +CREATE TABLE Project ( |
43 | 33 | pid SERIAL PRIMARY KEY, |
44 | | - product_category_pid INTEGER NOT NULL REFERENCES product_category (pid) ON DELETE CASCADE, |
45 | 34 | name varchar(50) NOT NULL, |
46 | | - description varchar(50) NOT NULL, |
47 | | - row_status char(1) DEFAULT 'A', |
48 | | - price numeric(10,2) CHECK (price > 0) |
| 35 | + dateStarted date |
49 | 36 | ); |
50 | 37 |
|
51 | | -INSERT INTO product_category (pid, category) values (1, 'Hardware'); |
52 | | -INSERT INTO product_category (pid, category) values (2, 'Software'); |
53 | | -INSERT INTO product_category (pid, category) values (3, 'Middleware'); |
54 | | - |
55 | | -INSERT INTO public.company (name, address) VALUES('CleverGang', 'Chotikov 14, Chotikov 330 17'); |
56 | | -INSERT INTO public.company (name, address) VALUES('Querity', 'Manesova 44, Plzen'); |
57 | | - |
58 | | - |
59 | | -INSERT INTO public.employee (company_pid, name, surname, mail, salary) |
60 | | -VALUES(1, 'Břetislav', 'Wajtr', 'bretislav.wajtr@clevergang.com', 35000); |
61 | | -INSERT INTO public.employee (company_pid, name, surname, mail, salary) |
62 | | -VALUES(1, 'Viktor', 'Janukovic', 'viktor.janukovic@clevergang.com', 10000); |
63 | | -INSERT INTO public.employee (company_pid, name, surname, mail, salary) |
64 | | -VALUES(1, 'Olga', 'Pravcová', 'olga.wajtrova@clevergang.com', 35000); |
65 | | -INSERT INTO public.employee (company_pid, name, surname, mail, salary) |
66 | | -VALUES(2, 'Jiri', 'Kiml', 'jiri.kiml@querity.cz', 49000); |
67 | | - |
68 | | - |
69 | | -INSERT INTO public.department (name) VALUES('Development'); |
70 | | -INSERT INTO public.department (name) VALUES('Sales'); |
71 | | - |
72 | | - |
73 | | -INSERT INTO public.employee_department (employee_pid, department_pid) VALUES(1, 1); |
74 | | -INSERT INTO public.employee_department (employee_pid, department_pid) VALUES(2, 1); |
75 | | -INSERT INTO public.employee_department (employee_pid, department_pid) VALUES(3, 1); |
76 | | -INSERT INTO public.employee_department (employee_pid, department_pid) VALUES(3, 2); |
| 38 | +CREATE TABLE ProjectEmployee ( |
| 39 | + project_pid INTEGER REFERENCES Project, |
| 40 | + employee_pid INTEGER REFERENCES Employee, |
| 41 | + PRIMARY KEY (project_pid, employee_pid) |
| 42 | +); |
77 | 43 |
|
| 44 | +-- now insertProject some test data |
| 45 | + |
| 46 | +INSERT INTO Company (name, address) VALUES ('CleverGang', 'Prague, Czech Republic'); |
| 47 | +INSERT INTO Company (name, address) VALUES ('Supersoft', 'Berlin, Germany'); |
| 48 | +INSERT INTO Company (name, address) VALUES ('Pear', 'Cupertino, USA'); |
| 49 | + |
| 50 | +INSERT INTO Department (company_pid, name) VALUES (1, 'Back office'); |
| 51 | +INSERT INTO Department (company_pid, name) VALUES (1, 'IT Department'); |
| 52 | +INSERT INTO Department (company_pid, name) VALUES (1, 'Software Development'); |
| 53 | +INSERT INTO Department (company_pid, name) VALUES (2, 'Help desk'); |
| 54 | +INSERT INTO Department (company_pid, name) VALUES (2, 'Sales'); |
| 55 | +INSERT INTO Department (company_pid, name) VALUES (3, 'Hardware Development'); |
| 56 | + |
| 57 | +-- names generated using listofrandomnames.com ;) |
| 58 | +INSERT INTO Employee (department_pid, name, surname, email, salary) |
| 59 | + VALUES (1, 'Curt', 'Odegaard', 'curt.odegaard@clevergang.com', 10000); |
| 60 | +INSERT INTO Employee (department_pid, name, surname, email, salary) |
| 61 | + VALUES (2, 'Rupert', 'Spradling', 'rupert.spradling@clevergang.com', 11000); |
| 62 | +INSERT INTO Employee (department_pid, name, surname, email, salary) |
| 63 | + VALUES (3, 'Carita', 'Ladouceur', 'carita.ladouceur@clevergang.com', 12000); |
| 64 | +INSERT INTO Employee (department_pid, name, surname, email, salary) |
| 65 | + VALUES (4, 'Abbie', 'Waring', 'abbie.waring@supersoft.com', 13000); |
| 66 | +INSERT INTO Employee (department_pid, name, surname, email, salary) |
| 67 | + VALUES (5, 'Cecily', 'Devaughn', 'cecily.devaughn@supersoft.com', 15000); |
| 68 | +INSERT INTO Employee (department_pid, name, surname, email, salary) |
| 69 | + VALUES (6, 'Yulanda', 'Grado', 'yulanda.grado@pear.com', 17000); |
| 70 | +INSERT INTO Employee (department_pid, name, surname, email, salary) |
| 71 | + VALUES (1, 'Chia', 'Kuder', 'chia.kuder@clevergang.com', 20000); |
| 72 | +INSERT INTO Employee (department_pid, name, surname, email, salary) |
| 73 | + VALUES (2, 'Alica', 'Iannotti', 'alica.iannotti@clevergang.com', 30000); |
| 74 | +INSERT INTO Employee (department_pid, name, surname, email, salary) |
| 75 | + VALUES (3, 'Estrella', 'Heroux', 'estrella.heroux@clevergang.com', 31000); |
| 76 | +INSERT INTO Employee (department_pid, name, surname, email, salary) |
| 77 | + VALUES (4, 'Myrta', 'Lirette', 'myrta.lirette@supersoft.com', 50000); |
| 78 | + |
| 79 | + |
| 80 | +INSERT INTO Project (name, dateStarted) VALUES ('Awesome app', CURRENT_DATE); |
| 81 | +INSERT INTO Project (name, dateStarted) VALUES ('Desktop app', CURRENT_DATE); |
| 82 | + |
| 83 | + |
| 84 | +INSERT INTO ProjectEmployee (project_pid, employee_pid) VALUES (1, 1); |
| 85 | +INSERT INTO ProjectEmployee (project_pid, employee_pid) VALUES (1, 2); |
| 86 | +INSERT INTO ProjectEmployee (project_pid, employee_pid) VALUES (1, 9); |
| 87 | +INSERT INTO ProjectEmployee (project_pid, employee_pid) VALUES (2, 10); |
| 88 | +INSERT INTO ProjectEmployee (project_pid, employee_pid) VALUES (2, 5); |
0 commit comments