ddlScript: kreiranje.sql

File kreiranje.sql, 6.5 KB (added by 223270, 12 days ago)
Line 
1DROP SCHEMA travel_sage CASCADE;
2CREATE SCHEMA travel_sage;
3SET SEARCH_PATH TO travel_sage;
4
5DROP TABLE IF EXISTS NASTANI CASCADE;
6DROP TABLE IF EXISTS PREFERENCI CASCADE;
7DROP TABLE IF EXISTS PAKETI CASCADE;
8DROP TABLE IF EXISTS RECENZII CASCADE;
9DROP TABLE IF EXISTS REZERVACII CASCADE;
10DROP TABLE IF EXISTS PREMIUM CASCADE;
11DROP TABLE IF EXISTS STANDARD CASCADE;
12DROP TABLE IF EXISTS KORISNICI CASCADE;
13DROP TABLE IF EXISTS AKTIVNOSTI CASCADE;
14DROP TABLE IF EXISTS METEROLOSHKASOSTOJBA CASCADE;
15DROP TABLE IF EXISTS DESTINACII CASCADE;
16DROP TABLE IF EXISTS TAGOVI CASCADE;
17DROP TABLE IF EXISTS destinacii_has_tagovi CASCADE;
18DROP TABLE IF EXISTS aktivnosti_has_paketi CASCADE;
19DROP TABLE IF EXISTS aktivnosti_has_rezervacii CASCADE;
20DROP TABLE IF EXISTS destinacii_has_korisnici CASCADE;
21
22
23CREATE TABLE TAGOVI (
24 idTag SERIAL PRIMARY KEY,
25 tagOznaka VARCHAR(255) NOT NULL
26);
27
28CREATE 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
45CREATE 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
57CREATE 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
67CREATE 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
78CREATE 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
88CREATE 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
100CREATE 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
112CREATE 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
127CREATE 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
141CREATE 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
149CREATE 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
160CREATE 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
168CREATE 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
176CREATE 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
184CREATE 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);