-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBazaDanychSkryptTworzacy2.sql
145 lines (128 loc) · 4.78 KB
/
BazaDanychSkryptTworzacy2.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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
CREATE TABLE Uzytkownik (
id_uzytkownika INTEGER GENERATED ALWAYS AS IDENTITY,
nazwa VARCHAR(30),
CONSTRAINT pk_uzytkownik PRIMARY KEY (id_uzytkownika)
);
CREATE TABLE Gatunek(
nazwa VARCHAR(30) PRIMARY KEY
);
CREATE TABLE Producent(
nazwa VARCHAR(30) PRIMARY KEY,
rok_zalozenia DATE
);
CREATE TABLE Autor(
imie VARCHAR(30),
nazwisko VARCHAR(30),
CONSTRAINT pk_autor PRIMARY KEY(imie, nazwisko)
);
CREATE TABLE Rezyser(
imie VARCHAR(30),
nazwisko VARCHAR(30),
CONSTRAINT pk_rezyser PRIMARY KEY(imie, nazwisko)
);
CREATE TABLE Pozycja(
id_pozycja INTEGER GENERATED ALWAYS AS IDENTITY,
tytul VARCHAR(50),
rok DATE,
typ VARCHAR(7),
CONSTRAINT pk_pozycja PRIMARY KEY (id_pozycja)
);
CREATE TABLE W_trakcie(
id_uzytkownika INTEGER,
id_pozycja INTEGER,
data_rozpoczecia DATE,
stopien_ukonczenia NUMBER(3,5),
CONSTRAINT pk_w_trakcie PRIMARY KEY(id_uzytkownika, id_pozycja),
CONSTRAINT fk_w_trakcie_1 FOREIGN KEY(id_pozycja) REFERENCES Pozycja(id_pozycja),
CONSTRAINT fk_w_trakcie_2 FOREIGN KEY(id_uzytkownika) REFERENCES Uzytkownik(id_uzytkownika)
);
CREATE TABLE Ukonczona(
id_uzytkownika INTEGER,
id_pozycja INTEGER,
data_ukoczenia DATE,
CONSTRAINT pk_ukonczona PRIMARY KEY(id_uzytkownika, id_pozycja),
CONSTRAINT fk_ukonczona_1 FOREIGN KEY(id_pozycja) REFERENCES Pozycja(id_pozycja),
CONSTRAINT fk_ukonczona_2 FOREIGN KEY(id_uzytkownika) REFERENCES Uzytkownik(id_uzytkownika)
);
CREATE TABLE Oczekujaca(
id_uzytkownika INTEGER,
id_pozycja INTEGER,
priorytet NUMBER(2,2),
CONSTRAINT pk_oczekujaca PRIMARY KEY(id_uzytkownika, id_pozycja),
CONSTRAINT fk_oczekujaca_1 FOREIGN KEY(id_pozycja) REFERENCES Pozycja(id_pozycja),
CONSTRAINT fk_oczekujaca_2 FOREIGN KEY(id_uzytkownika) REFERENCES Uzytkownik(id_uzytkownika)
);
CREATE TABLE Pozycja_Gatunek(
id_pozycja INTEGER,
nazwa VARCHAR(30),
CONSTRAINT pk_pozycja_gatunek PRIMARY KEY(id_pozycja, nazwa),
CONSTRAINT fk_pozycja_gatunek_id_pozycja FOREIGN KEY(id_pozycja) REFERENCES Pozycja(id_pozycja),
CONSTRAINT fk_pozycja_gatunek_nazwa FOREIGN KEY(nazwa) REFERENCES Gatunek(nazwa)
);
CREATE TABLE Film(
id_pozycja INTEGER,
CONSTRAINT pk_film PRIMARY KEY(id_pozycja),
CONSTRAINT fk_film FOREIGN KEY(id_pozycja) REFERENCES Pozycja(id_pozycja)
);
CREATE TABLE Gra(
id_pozycja INTEGER,
nazwa VARCHAR(30),
CONSTRAINT pk_gra PRIMARY KEY(id_pozycja),
CONSTRAINT fk_gra_1 FOREIGN KEY(id_pozycja) REFERENCES Pozycja(id_pozycja),
CONSTRAINT fk_gra_2 FOREIGN KEY(nazwa) REFERENCES Producent(nazwa)
);
CREATE TABLE Ksiazka(
id_pozycja INTEGER,
CONSTRAINT pk_ksiazka PRIMARY KEY(id_pozycja),
CONSTRAINT fk_ksiazka FOREIGN KEY(id_pozycja) REFERENCES Pozycja(id_pozycja)
);
CREATE TABLE Serial(
id_pozycja INTEGER,
liczba_sezonow INTEGER,
CONSTRAINT pk_serial PRIMARY KEY(id_pozycja),
CONSTRAINT fk_serial FOREIGN KEY(id_pozycja) REFERENCES Pozycja(id_pozycja)
);
CREATE TABLE Autor_Ksiazka(
id_pozycja INTEGER,
imie VARCHAR(30),
nazwisko VARCHAR(30),
CONSTRAINT pk_autor_ksiazka PRIMARY KEY (id_pozycja, imie, nazwisko),
CONSTRAINT fk_autor_ksiazka_id_pozycja FOREIGN KEY(id_pozycja) REFERENCES Ksiazka(id_pozycja),
CONSTRAINT fk_autor_ksiazka_imie_nazwisko FOREIGN KEY(imie, nazwisko) REFERENCES Autor(imie, nazwisko)
);
CREATE TABLE Rezyser_Serial(
id_pozycja INTEGER,
imie VARCHAR(30),
nazwisko VARCHAR(30),
CONSTRAINT pk_rezyser_serial PRIMARY KEY (id_pozycja, imie, nazwisko),
CONSTRAINT fk_rezyser_serial_id_pozycja FOREIGN KEY(id_pozycja) REFERENCES Serial(id_pozycja),
CONSTRAINT fk_rezyser_serial_imie_nazwisko FOREIGN KEY(imie, nazwisko) REFERENCES Rezyser(imie, nazwisko)
);
CREATE TABLE Rezyser_Film(
id_pozycja INTEGER,
imie VARCHAR(30),
nazwisko VARCHAR(30),
CONSTRAINT pk_rezyser_film PRIMARY KEY (id_pozycja, imie, nazwisko),
CONSTRAINT fk_rezyser_film_id_pozycja FOREIGN KEY(id_pozycja) REFERENCES Film(id_pozycja),
CONSTRAINT fk_rezyser_film_imie_nazwisko FOREIGN KEY(imie, nazwisko) REFERENCES Rezyser(imie, nazwisko)
);
/
/*
DROP TABLE pozycja CASCADE CONSTRAINTS;
DROP TABLE autor CASCADE CONSTRAINTS;
DROP TABLE rezyser CASCADE CONSTRAINTS;
DROP TABLE serial CASCADE CONSTRAINTS;
DROP TABLE film CASCADE CONSTRAINTS;
DROP TABLE gra CASCADE CONSTRAINTS;
DROP TABLE ukonczona CASCADE CONSTRAINTS;
DROP TABLE w_trakcie CASCADE CONSTRAINTS;
DROP TABLE oczekujaca CASCADE CONSTRAINTS;
DROP TABLE autor_ksiazka CASCADE CONSTRAINTS;
DROP TABLE gatunek CASCADE CONSTRAINTS;
DROP TABLE ksiazka CASCADE CONSTRAINTS;
DROP TABLE pozycja_gatunek CASCADE CONSTRAINTS;
DROP TABLE producent CASCADE CONSTRAINTS;
DROP TABLE rezyser_film CASCADE CONSTRAINTS;
DROP TABLE rezyser_serial CASCADE CONSTRAINTS;
DROP TABLE uzytkownik CASCADE CONSTRAINTS;
*/