-- DROP SCHEMA "Project"; CREATE SCHEMA "Project" AUTHORIZATION db_202122z_va_prj_freeparkingspace_owner; create table Najava( Korisnicko_ime varchar(150) primary key, EMBG varchar(13) not null, Br_tel varchar(30) not null, Email varchar(150) not null, password varchar(50) not null, Ime varchar(150) not null, Prezime varchar(150) not null ); create table Vraboten( Id_vraboten serial not null, Uloga varchar(50) not null, Korisnicko_ime varchar(150) primary key, constraint fk_Korisnicko_ime foreign key (Korisnicko_ime) references Najava (Korisnicko_ime) ); create table Administrator ( Id_administrator serial not null, Korisnicko_ime varchar(150) primary key, constraint fk_Korisnicko_ime foreign key (Korisnicko_ime) references Najava (Korisnicko_ime) ); create table Kontroler ( Id_kontroler serial not null, Korisnicko_ime varchar(150) primary key, constraint fk_Korisnicko_ime foreign key (Korisnicko_ime) references Najava (Korisnicko_ime) ); create table Kancelar ( Id_kancelar serial not null, Korisnicko_ime varchar(150) primary key, constraint fk_Korisnicko_ime foreign key (Korisnicko_ime) references Najava (Korisnicko_ime) ); create table Ime_na_parking ( Id_ime integer primary key, Lokacija varchar(150) not null, Administrator_Korisnicko_ime varchar(150) not null, constraint fk_Administrator_Korisnicko_ime foreign key (Administrator_Korisnicko_ime) references Administrator (Korisnicko_ime) ); create table Zona ( Id_zona varchar (20) primary key, Ime_na_parking_Id_Ime integer not null, constraint fk_Ime_na_parking foreign key (Ime_na_parking_Id_Ime) references Ime_na_parking (Id_ime) ); create table Parking_mesto ( Broj_na_pmesta integer primary key, IdZona varchar(20) not null, constraint fk_IdZona foreign key (IdZona) references Zona (Id_zona) ); create table Korisnik( Id_korisnik serial not null, Korisnicko_ime varchar(150) primary key, constraint fk_Korisnicko_ime foreign key (Korisnicko_ime) references Najava (Korisnicko_ime) ); create table Avtomobil( Reg_tablica varchar(10) primary key, Marka varchar(20) not null, Boja varchar (15), Korisnickoime varchar(150) not null, constraint fk_Korisnickoime foreign key (Korisnickoime) references Korisnik (Korisnicko_ime) ); create table Plakjanje ( Id_plakanje integer primary key, Korisnickoime varchar(150) not null, Br_tel varchar(30), Br_na_smetka varchar(150), Tip_plakjanje varchar(150) not null, constraint fk_Korisnickoime foreign key (Korisnickoime) references Korisnik (Korisnicko_ime), constraint ck_tip_plakjanje check (case when tip_plakjanje='mobilno' then Br_tel!= 'not null' when tip_plakjanje='karticka' then Br_na_smetka!= 'not null' end) ); create table Kazna ( Id_kazna integer primary key, iznos integer not null, broj_kazni integer not null, Korisnickoime varchar(150) not null, constraint fk_Korisnickoime foreign key (Korisnickoime) references Korisnik (Korisnicko_ime) ); create table Rezervacija ( Id_rezervacija integer primary key, pocetno_vreme TIMESTAMP not null, krajno_vreme TIMESTAMP not null, Reg_tablica varchar(10) not null, Broj_na_pmesta integer not null, Id_plakanje integer not null , constraint fk_Reg_tablica foreign key (Reg_tablica) references Avtomobil (Reg_tablica), constraint fk_Broj_na_pmesta foreign key (Broj_na_pmesta) references Parking_mesto (Broj_na_pmesta), constraint fk_Id_plakanje foreign key (Id_plakanje) references Plakjanje (Id_plakanje) ); create table Kontrola ( Id_kontrola serial primary key, izvrsena_kontrola integer not null, vreme_na_kontrola TIMESTAMP not null, konstantacija varchar(300) not null, Korisnicko_ime varchar(150) not null, Broj_na_pmesta integer not null, Id_rezervacija integer not null, Id_kazna integer not null, constraint fk_Korisnicko_ime foreign key (Korisnicko_ime) references Kontroler (Korisnicko_ime), constraint fk_Broj_na_pmesta foreign key (Broj_na_pmesta) references Parking_mesto (Broj_na_pmesta), constraint fk_Id_rezervacija foreign key (Id_rezervacija) references Rezervacija (Id_rezervacija), constraint fk_Id_kazna foreign key (Id_kazna) references Kazna (Id_kazna) );