RelationalDesign: kreiranje.sql

File kreiranje.sql, 7.7 KB (added by 201082, 18 months ago)
Line 
1-- delete tables if they exist
2drop table if exists project.Fakturi;
3drop table if exists project.Licenci;
4drop table if exists project.Rezervacii;
5drop table if exists project.Roba;
6drop table if exists project.Ruti;
7drop table if exists project.Vozila;
8drop table if exists project.Administratori;
9drop table if exists project.Dispeceri;
10drop table if exists project.Vozaci;
11drop table if exists project.Vraboteni_telefoni;
12drop table if exists project.Vraboteni;
13drop table if exists project.Tipovi;
14drop table if exists project.Kategorii;
15drop table if exists project.Kompanii;
16drop table if exists project.Gradovi;
17drop table if exists project.Klienti;
18
19-- create tables
20-- Kompanii: Kompanii(kompanija_id, kompanija_ime, kompanija_adresa, kompanija_telefon)
21create table project.Kompanii(
22 kompanija_id serial not null,
23 kompanija_ime varchar(300) not null,
24 kompanija_adresa varchar(300) not null,
25 kompanija_telefon varchar(300) not null,
26
27 constraint pk_Kompanii primary key (kompanija_id),
28 constraint un_Kompanii_kompanija_ime unique (kompanija_ime)
29);
30
31-- Vraboteni: Vraboteni(vraboten_id, vraboten_ime, vraboten_prezime, vraboten_email, vraboten_password, kompanija_id*(Kompanii))
32create table project.Vraboteni(
33 vraboten_id serial not null,
34 vraboten_ime varchar(300) not null,
35 vraboten_prezime varchar(300) not null,
36 vraboten_email varchar(300) not null,
37 vraboten_password varchar(300) not null,
38
39 kompanija_id integer not null,
40
41 constraint pk_Vraboteni primary key (vraboten_id),
42 constraint fk_Vraboteni_Kompanii foreign key (kompanija_id) references project.Kompanii(kompanija_id)
43);
44
45
46-- Administratori: Administratori(administrator_id*(Vraboteni))
47create table project.Administratori(
48 administrator_id integer not null,
49
50 constraint pk_Administratori primary key (administrator_id),
51 constraint fk_Administratori_Vraboteni foreign key (administrator_id) references project.Vraboteni(vraboten_id)
52);
53
54-- Dispeceri: Dispeceri(dispecer_id*(Vraboteni))
55create table project.Dispeceri(
56 dispecer_id integer not null,
57
58 constraint pk_Dispeceri primary key (dispecer_id),
59 constraint fk_Dispeceri_Vraboteni foreign key (dispecer_id) references project.Vraboteni(vraboten_id)
60);
61
62-- Vozaci: Vozaci(vozac_id*(Vraboteni))
63create table project.Vozaci(
64 vozac_id integer not null,
65
66 constraint pk_Vozaci primary key (vozac_id),
67 constraint fk_Vozaci_Vraboteni foreign key (vozac_id) references project.Vraboteni(vraboten_id)
68);
69
70-- Vraboteni_telefoni: Vraboteni_telefoni(vraboten_id*(Vraboteni), telefonski_broj)
71create table project.Vraboteni_telefoni(
72 vraboten_id integer not null,
73 telefonski_broj varchar(100) not null,
74
75 constraint pk_Vraboteni_telefoni primary key (vraboten_id, telefonski_broj),
76 constraint fk_Vraboteni_telefoni_Vraboteni foreign key (vraboten_id) references project.Vraboteni(vraboten_id)
77);
78
79-- Tipovi: Tipovi(tip_id, tip_ime)
80create table project.Tipovi(
81 tip_id serial not null,
82 tip_ime varchar(300) not null,
83
84 constraint pk_Tipovi primary key (tip_id),
85 constraint un_Tipovi_tip_ime unique (tip_ime)
86);
87
88-- Vozila: Vozila(vozilo_id, vozilo_kapacitet, vozilo_marka, kompanija_id*(Kompanii), tip_id*(Tipovi), vozac_id*(Vozaci))
89create table project.Vozila(
90 vozilo_id serial not null,
91 vozilo_kapacitet integer not null,
92 vozilo_marka varchar(300) not null,
93
94 kompanija_id integer not null,
95 tip_id integer not null,
96 vozac_id integer not null,
97
98 constraint pk_Vozila primary key (vozilo_id),
99 constraint fk_Vozila_Kompanii foreign key (kompanija_id) references project.Kompanii(kompanija_id),
100 constraint fk_Vozila_Tipovi foreign key (tip_id) references project.Tipovi(tip_id),
101 constraint fk_Vozila_Vozaci foreign key (vozac_id) references project.Vozaci(vozac_id)
102);
103
104-- Klienti: Klienti(klient_id, klient_ime, klient_prezime, klient_email, klient_telefon)
105create table project.Klienti(
106 klient_id serial not null,
107 klient_ime varchar(300) not null,
108 klient_prezime varchar(300) not null,
109 klient_email varchar(300) not null,
110 klient_password varchar(300) not null,
111 klient_telefon varchar(100) not null,
112
113 constraint pk_Klienti primary key (klient_id),
114 constraint un_Klienti_klient_email unique (klient_email)
115);
116
117-- Gradovi: Gradovi(grad_id, grad_ime)
118create table project.Gradovi(
119 grad_id serial not null,
120 grad_ime varchar(300) not null,
121
122 constraint pk_Gradovi primary key (grad_id),
123 constraint un_Gradovi_ime unique (grad_ime)
124);
125
126-- Ruti: Ruti(ruta_id, datum_poagjanje, datum_pristignuvanje,s vozilo_id*(Vozila),
127-- zapocnuva_vo*(Gradovi), zavrsuva_vo*(Gradovi), dispecer_id*(Dispeceri), vozac_id*(Vozaci))
128create table project.Ruti(
129 ruta_id serial not null,
130 datum_poagjanje date not null,
131 datum_pristignuvanje date not null,
132
133 vozilo_id integer not null,
134 zapocnuva_vo integer not null,
135 zavrsuva_vo integer not null,
136 dispecer_id integer not null,
137 vozac_id integer not null,
138
139 constraint pk_Ruti primary key (ruta_id),
140 constraint fk_Ruti_Vozila foreign key(vozilo_id) references project.Vozila(vozilo_id),
141 constraint fk_Ruti_Zapocnuva_Gradovi foreign key(zapocnuva_vo) references project.Gradovi(grad_id),
142 constraint fk_Ruti_Zavrsuva_Gradovi foreign key(zavrsuva_vo) references project.Gradovi(grad_id),
143 constraint fk_Ruti_Dispeceri foreign key(dispecer_id) references project.Dispeceri(dispecer_id),
144 constraint fk_Ruti_Vozaci foreign key(vozac_id) references project.Vozaci(vozac_id)
145);
146
147-- Kategorija: Kategorii(kategorija_id, kategorija_ime)
148create table project.Kategorii(
149 kategorija_id serial not null,
150 kategorija_ime varchar(300) not null,
151
152 constraint pk_Kategorii primary key (kategorija_id),
153 constraint un_Kategorija_ime unique (kategorija_ime)
154);
155
156-- Rezervacii: Rezervacii(rezervacija_id, rezervacija_status, klient_id*(Klienti), ruta_id*(Ruti))
157create table project.Rezervacii(
158 rezervacija_id serial not null,
159 rezervacija_status varchar(300) not null,
160
161 klient_id integer not null,
162 ruta_id integer not null,
163
164 constraint pk_Rezervacii primary key (rezervacija_id),
165 constraint fk_Rezervacii_Klienti foreign key (klient_id) references project.Klienti(klient_id),
166 constraint fk_Rezervacii_Ruti foreign key (ruta_id) references project.Ruti(ruta_id)
167);
168
169-- Roba: Roba(roba_id, roba_kolicina, kategorija_id*(Kategorii), rezervacija_id*(Rezervacii))
170create table project.Roba(
171 roba_id serial not null,
172 roba_kolicina integer not null,
173
174 rezervacija_id integer not null,
175 kategorija_id integer not null,
176
177 constraint pk_Roba primary key (roba_id),
178 constraint fk_Roba_Kategorii foreign key(kategorija_id) references project.Kategorii(kategorija_id),
179 constraint fk_Roba_Rezervacii foreign key (rezervacija_id) references project.Rezervacii(rezervacija_id)
180);
181
182-- Fakturi: Fakturi(faktura_id, faktura_iznos, rezervacija_id*(Rezervacii), administrator_id*(Vraboteni))
183create table project.Fakturi(
184 faktura_id serial not null,
185 faktura_iznos integer not null,
186
187 rezervacija_id integer not null,
188 administrator_id integer not null,
189
190 constraint pk_Fakturi primary key (faktura_id),
191 constraint fk_Fakturi_Rezervacii foreign key (rezervacija_id) references project.Rezervacii(rezervacija_id),
192 constraint fk_Fakturi_Administratori foreign key (administrator_id) references project.Administratori(administrator_id)
193);
194
195-- Licenci: Licenci(kompanija_id*(Kompanii), licenca_id, licenca_vazi_od, licenca_vazi_do)
196create table project.Licenci(
197 licenca_id serial not null,
198 licenca_vazi_od date not null,
199 licenca_vazi_do date not null,
200
201 kompanija_id integer not null,
202
203 constraint pk_Licenci primary key (kompanija_id, licenca_id),
204 constraint fk_Licenci_Kompanii foreign key (kompanija_id) references project.Kompanii(kompanija_id)
205);
206