| 1 | DROP SCHEMA travel_sage CASCADE;
|
|---|
| 2 | CREATE SCHEMA travel_sage;
|
|---|
| 3 | SET SEARCH_PATH TO travel_sage;
|
|---|
| 4 |
|
|---|
| 5 | DROP TABLE IF EXISTS NASTANI CASCADE;
|
|---|
| 6 | DROP TABLE IF EXISTS PREFERENCI CASCADE;
|
|---|
| 7 | DROP TABLE IF EXISTS PAKETI CASCADE;
|
|---|
| 8 | DROP TABLE IF EXISTS RECENZII CASCADE;
|
|---|
| 9 | DROP TABLE IF EXISTS REZERVACII CASCADE;
|
|---|
| 10 | DROP TABLE IF EXISTS PREMIUM CASCADE;
|
|---|
| 11 | DROP TABLE IF EXISTS STANDARD CASCADE;
|
|---|
| 12 | DROP TABLE IF EXISTS KORISNICI CASCADE;
|
|---|
| 13 | DROP TABLE IF EXISTS AKTIVNOSTI CASCADE;
|
|---|
| 14 | DROP TABLE IF EXISTS METEROLOSHKASOSTOJBA CASCADE;
|
|---|
| 15 | DROP TABLE IF EXISTS DESTINACII CASCADE;
|
|---|
| 16 | DROP TABLE IF EXISTS TAGOVI CASCADE;
|
|---|
| 17 | DROP TABLE IF EXISTS destinacii_has_tagovi CASCADE;
|
|---|
| 18 | DROP TABLE IF EXISTS aktivnosti_has_paketi CASCADE;
|
|---|
| 19 | DROP TABLE IF EXISTS aktivnosti_has_rezervacii CASCADE;
|
|---|
| 20 | DROP TABLE IF EXISTS destinacii_has_korisnici CASCADE;
|
|---|
| 21 |
|
|---|
| 22 |
|
|---|
| 23 | CREATE TABLE TAGOVI (
|
|---|
| 24 | idTag SERIAL PRIMARY KEY,
|
|---|
| 25 | tagOznaka VARCHAR(255) NOT NULL
|
|---|
| 26 | );
|
|---|
| 27 |
|
|---|
| 28 | CREATE TABLE DESTINACII (
|
|---|
| 29 | idDest SERIAL PRIMARY KEY,
|
|---|
| 30 | imeLokacija VARCHAR(255) NOT NULL,
|
|---|
| 31 | opisLokacija VARCHAR(255),
|
|---|
| 32 | tipoviMesta VARCHAR(255) NOT NULL,
|
|---|
| 33 | preporachanaSezona VARCHAR(255) NOT NULL,
|
|---|
| 34 | prosechnaTemp DECIMAL(5, 2),
|
|---|
| 35 | lat DECIMAL(9, 6),
|
|---|
| 36 | lon DECIMAL(9, 6),
|
|---|
| 37 | drzhava VARCHAR(255),
|
|---|
| 38 | popularnost INT,
|
|---|
| 39 | ime VARCHAR(255) NOT NULL,
|
|---|
| 40 | opis VARCHAR(255) NOT NULL,
|
|---|
| 41 | idTag INT,
|
|---|
| 42 | CONSTRAINT fk_tag_dest FOREIGN KEY (idTag) REFERENCES TAGOVI(idTag)
|
|---|
| 43 | );
|
|---|
| 44 |
|
|---|
| 45 | CREATE TABLE METEROLOSHKASOSTOJBA (
|
|---|
| 46 | idMeteo SERIAL PRIMARY KEY,
|
|---|
| 47 | momentTemp DECIMAL(5, 2),
|
|---|
| 48 | sostojbaVreme VARCHAR(255) NOT NULL,
|
|---|
| 49 | predupreduvanja VARCHAR(255) NOT NULL,
|
|---|
| 50 | vlazhnost DECIMAL(5, 2),
|
|---|
| 51 | veter DECIMAL(5, 2),
|
|---|
| 52 | mesec INT,
|
|---|
| 53 | idDest INT,
|
|---|
| 54 | CONSTRAINT fk_dest_meteo FOREIGN KEY (idDest) REFERENCES DESTINACII(idDest)
|
|---|
| 55 | );
|
|---|
| 56 |
|
|---|
| 57 | CREATE TABLE AKTIVNOSTI (
|
|---|
| 58 | idAktivnost SERIAL PRIMARY KEY,
|
|---|
| 59 | imeAktivnost VARCHAR(255) NOT NULL,
|
|---|
| 60 | informacii VARCHAR(255),
|
|---|
| 61 | kategorija VARCHAR(255) NOT NULL,
|
|---|
| 62 | iznos INT,
|
|---|
| 63 | idDest INT,
|
|---|
| 64 | CONSTRAINT fk_dest_aktivnost FOREIGN KEY (idDest) REFERENCES DESTINACII(idDest)
|
|---|
| 65 | );
|
|---|
| 66 |
|
|---|
| 67 | CREATE TABLE KORISNICI (
|
|---|
| 68 | idKorisnik SERIAL PRIMARY KEY,
|
|---|
| 69 | ime VARCHAR(255) NOT NULL,
|
|---|
| 70 | prezime VARCHAR(255) NOT NULL,
|
|---|
| 71 | ePoshta VARCHAR(255) NOT NULL UNIQUE,
|
|---|
| 72 | telBr VARCHAR(255) NOT NULL,
|
|---|
| 73 | datumRagjanje DATE,
|
|---|
| 74 | idDest INT,
|
|---|
| 75 | CONSTRAINT fk_dest_korisnik FOREIGN KEY (idDest) REFERENCES DESTINACII(idDest)
|
|---|
| 76 | );
|
|---|
| 77 |
|
|---|
| 78 | CREATE TABLE STANDARD (
|
|---|
| 79 | idKorisnik INT,
|
|---|
| 80 | ime VARCHAR(255) NOT NULL,
|
|---|
| 81 | prezime VARCHAR(255) NOT NULL,
|
|---|
| 82 | ePoshta VARCHAR(255) NOT NULL UNIQUE,
|
|---|
| 83 | telBr VARCHAR(255) NOT NULL,
|
|---|
| 84 | datumRagjanje DATE,
|
|---|
| 85 | CONSTRAINT fk_korisnik_standard FOREIGN KEY (idKorisnik) REFERENCES KORISNICI(idKorisnik)
|
|---|
| 86 | );
|
|---|
| 87 |
|
|---|
| 88 | CREATE TABLE PREMIUM (
|
|---|
| 89 | idKorisnik INT,
|
|---|
| 90 | ime VARCHAR(255) NOT NULL,
|
|---|
| 91 | prezime VARCHAR(255) NOT NULL,
|
|---|
| 92 | ePoshta VARCHAR(255) NOT NULL UNIQUE,
|
|---|
| 93 | telBr VARCHAR(255) NOT NULL,
|
|---|
| 94 | datumRagjanje DATE,
|
|---|
| 95 | datumKreiranje DATE,
|
|---|
| 96 | popust DECIMAL(5, 2),
|
|---|
| 97 | CONSTRAINT fk_korisnik_premium FOREIGN KEY (idKorisnik) REFERENCES KORISNICI(idKorisnik)
|
|---|
| 98 | );
|
|---|
| 99 |
|
|---|
| 100 | CREATE TABLE REZERVACII (
|
|---|
| 101 | idRezervacija SERIAL PRIMARY KEY,
|
|---|
| 102 | vremenskaTochka DATE NOT NULL,
|
|---|
| 103 | vkupnaCena INT NOT NULL,
|
|---|
| 104 | idAktivnost INT,
|
|---|
| 105 | idKorisnik INT,
|
|---|
| 106 | idMeteo INT,
|
|---|
| 107 | CONSTRAINT fk_aktivnost_rezervacija FOREIGN KEY (idAktivnost) REFERENCES AKTIVNOSTI(idAktivnost),
|
|---|
| 108 | CONSTRAINT fk_korisnik_rezervacija FOREIGN KEY (idKorisnik) REFERENCES KORISNICI(idKorisnik),
|
|---|
| 109 | CONSTRAINT fk_meteo_rezervacija FOREIGN KEY (idMeteo) REFERENCES METEROLOSHKASOSTOJBA(idMeteo)
|
|---|
| 110 | );
|
|---|
| 111 |
|
|---|
| 112 | CREATE TABLE RECENZII (
|
|---|
| 113 | idRecenzija SERIAL PRIMARY KEY,
|
|---|
| 114 | korisnichkoIme VARCHAR(255) NOT NULL,
|
|---|
| 115 | kvalitet INT NOT NULL,
|
|---|
| 116 | zabeleshka VARCHAR(255),
|
|---|
| 117 | datumRecenzija DATE,
|
|---|
| 118 | brGlasovi INT,
|
|---|
| 119 | idDest INT,
|
|---|
| 120 | idKorisnik INT,
|
|---|
| 121 | idRezervacija INT,
|
|---|
| 122 | CONSTRAINT fk_dest_recenzija FOREIGN KEY (idDest) REFERENCES DESTINACII(idDest),
|
|---|
| 123 | CONSTRAINT fk_korisnik_recenzija FOREIGN KEY (idKorisnik) REFERENCES KORISNICI(idKorisnik),
|
|---|
| 124 | CONSTRAINT fk_rezervacija_recenzija FOREIGN KEY (idRezervacija) REFERENCES REZERVACII(idRezervacija)
|
|---|
| 125 | );
|
|---|
| 126 |
|
|---|
| 127 | CREATE TABLE PAKETI (
|
|---|
| 128 | idPaket SERIAL PRIMARY KEY,
|
|---|
| 129 | imePaket VARCHAR(255) NOT NULL,
|
|---|
| 130 | cena INT NOT NULL,
|
|---|
| 131 | pochetok TIMESTAMP NOT NULL,
|
|---|
| 132 | kraj TIMESTAMP NOT NULL,
|
|---|
| 133 | idDest INT,
|
|---|
| 134 | idAktivnost INT,
|
|---|
| 135 | idRezervacija INT,
|
|---|
| 136 | CONSTRAINT fk_dest_paket FOREIGN KEY (idDest) REFERENCES DESTINACII(idDest),
|
|---|
| 137 | CONSTRAINT fk_aktivnost_paket FOREIGN KEY (idAktivnost) REFERENCES AKTIVNOSTI(idAktivnost),
|
|---|
| 138 | CONSTRAINT fk_rezervacija_paket FOREIGN KEY (idRezervacija) REFERENCES REZERVACII(idRezervacija)
|
|---|
| 139 | );
|
|---|
| 140 |
|
|---|
| 141 | CREATE TABLE PREFERENCI (
|
|---|
| 142 | idPreferenca SERIAL PRIMARY KEY,
|
|---|
| 143 | tipPreferenca VARCHAR(255) NOT NULL,
|
|---|
| 144 | prioritet INT,
|
|---|
| 145 | idKorisnik INT,
|
|---|
| 146 | CONSTRAINT fk_korisnik_preferenca FOREIGN KEY (idKorisnik) REFERENCES KORISNICI(idKorisnik)
|
|---|
| 147 | );
|
|---|
| 148 |
|
|---|
| 149 | CREATE TABLE NASTANI (
|
|---|
| 150 | idNastan SERIAL PRIMARY KEY,
|
|---|
| 151 | naziv VARCHAR(255) NOT NULL,
|
|---|
| 152 | vidovi VARCHAR(255) NOT NULL,
|
|---|
| 153 | pochetenDatum DATE,
|
|---|
| 154 | kraenDatum DATE,
|
|---|
| 155 | detali VARCHAR(255),
|
|---|
| 156 | idDest INT,
|
|---|
| 157 | CONSTRAINT fk_dest_nastan FOREIGN KEY (idDest) REFERENCES DESTINACII(idDest)
|
|---|
| 158 | );
|
|---|
| 159 |
|
|---|
| 160 | CREATE TABLE destinacii_has_tagovi (
|
|---|
| 161 | destinacii_idDest INT NOT NULL,
|
|---|
| 162 | tagovi_idTag INT NOT NULL,
|
|---|
| 163 | PRIMARY KEY (destinacii_idDest, tagovi_idTag),
|
|---|
| 164 | FOREIGN KEY (destinacii_idDest) REFERENCES DESTINACII(idDest),
|
|---|
| 165 | FOREIGN KEY (tagovi_idTag) REFERENCES TAGOVI(idTag)
|
|---|
| 166 | );
|
|---|
| 167 |
|
|---|
| 168 | CREATE TABLE aktivnosti_has_paketi (
|
|---|
| 169 | aktivnosti_idAktivnost INT NOT NULL,
|
|---|
| 170 | paketi_idPaket INT NOT NULL,
|
|---|
| 171 | PRIMARY KEY (aktivnosti_idAktivnost, paketi_idPaket),
|
|---|
| 172 | FOREIGN KEY (aktivnosti_idAktivnost) REFERENCES AKTIVNOSTI(idAktivnost),
|
|---|
| 173 | FOREIGN KEY (paketi_idPaket) REFERENCES PAKETI(idPaket)
|
|---|
| 174 | );
|
|---|
| 175 |
|
|---|
| 176 | CREATE TABLE aktivnosti_has_rezervacii (
|
|---|
| 177 | aktivnosti_idAktivnost INT NOT NULL,
|
|---|
| 178 | rezervacii_idRezervacija INT NOT NULL,
|
|---|
| 179 | PRIMARY KEY (aktivnosti_idAktivnost, rezervacii_idRezervacija),
|
|---|
| 180 | FOREIGN KEY (aktivnosti_idAktivnost) REFERENCES AKTIVNOSTI(idAktivnost),
|
|---|
| 181 | FOREIGN KEY (rezervacii_idRezervacija) REFERENCES REZERVACII(idRezervacija)
|
|---|
| 182 | );
|
|---|
| 183 |
|
|---|
| 184 | CREATE TABLE destinacii_has_korisnici (
|
|---|
| 185 | destinacii_idDest INT NOT NULL,
|
|---|
| 186 | korisnici_idKorisnik INT NOT NULL,
|
|---|
| 187 | ocena INT NULL,
|
|---|
| 188 | komentar VARCHAR(100) NULL,
|
|---|
| 189 | datum DATE NULL,
|
|---|
| 190 | PRIMARY KEY (destinacii_idDest, korisnici_idKorisnik),
|
|---|
| 191 | FOREIGN KEY (destinacii_idDest) REFERENCES DESTINACII(idDest),
|
|---|
| 192 | FOREIGN KEY (korisnici_idKorisnik) REFERENCES KORISNICI(idKorisnik)
|
|---|
| 193 | );
|
|---|