· 5 years ago · May 22, 2020, 08:32 PM
1-- Zadanie 1
2ALTER TABLE Pracownicy DROP FOREIGN KEY IF EXISTS prac_prac_FK;
3ALTER TABLE Projekty DROP FOREIGN KEY IF EXISTS prac_proj_FK;
4ALTER TABLE Zespoly DROP FOREIGN KEY IF EXISTS prac_zesp_FK;
5ALTER TABLE Zespoly DROP FOREIGN KEY IF EXISTS proj_zesp_FK;
6ALTER TABLE Zespoly DROP FOREIGN KEY IF EXISTS fun_zesp_FK;
7
8DROP TABLE IF EXISTS Pracownicy;
9DROP TABLE IF EXISTS Projekty;
10DROP TABLE IF EXISTS Zespoly;
11DROP TABLE IF EXISTS Funkcje;
12
13CREATE TABLE Pracownicy (
14 prac_id INT NOT NULL AUTO_INCREMENT,
15 szef_id INT NOT NULL,
16 imie VARCHAR(20) NOT NULL,
17 nazwisko VARCHAR(30) NOT NULL,
18 data_ur Date NOT NULL,
19 pesel DECIMAL(11,0) NOT NULL,
20 zarobki DECIMAL(10,2) NOT NULL,
21 plec ENUM("M","K"),
22 PRIMARY KEY (prac_id),
23 UNIQUE(pesel)
24) ENGINE = InnoDB;
25
26CREATE TABLE Projekty (
27 proj_id INT NOT NULL AUTO_INCREMENT,
28 nazwa VARCHAR(200) NOT NULL,
29 kod VARCHAR(20) NOT NULL,
30 kierownik_id INT NOT NULL,
31 data_rozp Date NOT NULL,
32 data_zak Date,
33 PRIMARY KEY (proj_id),
34 UNIQUE(nazwa, kod)
35) ENGINE = InnoDB;
36
37CREATE TABLE Zespoly (
38 prac_id INT NOT NULL,
39 proj_id INT NOT NULL,
40 funkcja_id INT NOT NULL,
41 data_rozp DATE NOT NULL,
42 data_zak DATE,
43 PRIMARY KEY(prac_id, proj_id)
44) ENGINE = InnoDB;
45
46CREATE TABLE Funkcje (
47 funkcja_id INT NOT NULL AUTO_INCREMENT,
48 nazwa VARCHAR(100) NOT NULL,
49 PRIMARY KEY(funkcja_id),
50 UNIQUE(nazwa)
51) ENGINE = InnoDB;
52
53ALTER TABLE Pracownicy ADD CONSTRAINT prac_prac_FK FOREIGN KEY (szef_id) REFERENCES Pracownicy(prac_id);
54ALTER TABLE Projekty ADD CONSTRAINT prac_proj_FK FOREIGN KEY (kierownik_id) REFERENCES Pracownicy(prac_id);
55ALTER TABLE Zespoly ADD CONSTRAINT prac_zesp_FK FOREIGN KEY (prac_id) REFERENCES Pracownicy(prac_id);
56ALTER TABLE Zespoly ADD CONSTRAINT proj_zesp_FK FOREIGN KEY (proj_id) REFERENCES Projekty(proj_id);
57ALTER TABLE Zespoly ADD CONSTRAINT fun_zesp_FK FOREIGN KEY (funkcja_id) REFERENCES Funkcje(funkcja_id);