ddlScript: sqlPoslednaV.2.sql

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