· 6 years ago · Apr 13, 2019, 09:38 PM
1-- MySQL Workbench Forward Engineering
2
3SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
4SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
5SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
6
7-- -----------------------------------------------------
8-- Schema wydawnictwo
9-- -----------------------------------------------------
10
11-- -----------------------------------------------------
12-- Schema wydawnictwo
13-- -----------------------------------------------------
14CREATE SCHEMA IF NOT EXISTS `wydawnictwo` DEFAULT CHARACTER SET utf8 ;
15USE `wydawnictwo` ;
16
17-- -----------------------------------------------------
18-- Table `wydawnictwo`.`ksiazki`
19-- -----------------------------------------------------
20CREATE TABLE IF NOT EXISTS `wydawnictwo`.`ksiazki` (
21 `id` INT NOT NULL AUTO_INCREMENT,
22 `tytul` VARCHAR(255) NOT NULL,
23 `data_wydania` DATE NULL,
24 `postep_prac` ENUM("POCZATKOWY", "ŚREDNIO ZAAWANSOWANY", "ZAAWANSOWANY", "NA UKOŃCZENIU", "UKOŃCZONY") NOT NULL,
25 `opis` LONGTEXT NULL,
26 `wydana` TINYINT NOT NULL,
27 PRIMARY KEY (`id`),
28 UNIQUE INDEX `id_UNIQUE` (`id` ASC))
29ENGINE = InnoDB;
30
31
32-- -----------------------------------------------------
33-- Table `wydawnictwo`.`osoby`
34-- -----------------------------------------------------
35CREATE TABLE IF NOT EXISTS `wydawnictwo`.`osoby` (
36 `id` INT NOT NULL AUTO_INCREMENT,
37 `imie` VARCHAR(45) NOT NULL,
38 `nazwisko` VARCHAR(45) NOT NULL,
39 PRIMARY KEY (`id`),
40 UNIQUE INDEX `id_UNIQUE` (`id` ASC))
41ENGINE = InnoDB;
42
43
44-- -----------------------------------------------------
45-- Table `wydawnictwo`.`autorzy`
46-- -----------------------------------------------------
47CREATE TABLE IF NOT EXISTS `wydawnictwo`.`autorzy` (
48 `id` INT NOT NULL,
49 `osoby_id` INT NOT NULL,
50 PRIMARY KEY (`id`, `osoby_id`),
51 INDEX `fk_autorzy_osoby1_idx` (`osoby_id` ASC),
52 CONSTRAINT `fk_autorzy_osoby1`
53 FOREIGN KEY (`osoby_id`)
54 REFERENCES `wydawnictwo`.`osoby` (`id`)
55 ON DELETE NO ACTION
56 ON UPDATE NO ACTION)
57ENGINE = InnoDB;
58
59
60-- -----------------------------------------------------
61-- Table `wydawnictwo`.`autorzy_ksiazki`
62-- -----------------------------------------------------
63CREATE TABLE IF NOT EXISTS `wydawnictwo`.`autorzy_ksiazki` (
64 `ksiazki_id` INT NOT NULL,
65 `autorzy_id` INT NOT NULL,
66 PRIMARY KEY (`ksiazki_id`, `autorzy_id`),
67 INDEX `fk_ksiazki_has_autorzy_autorzy1_idx` (`autorzy_id` ASC),
68 INDEX `fk_ksiazki_has_autorzy_ksiazki_idx` (`ksiazki_id` ASC),
69 CONSTRAINT `fk_ksiazki_has_autorzy_ksiazki`
70 FOREIGN KEY (`ksiazki_id`)
71 REFERENCES `wydawnictwo`.`ksiazki` (`id`)
72 ON DELETE NO ACTION
73 ON UPDATE NO ACTION,
74 CONSTRAINT `fk_ksiazki_has_autorzy_autorzy1`
75 FOREIGN KEY (`autorzy_id`)
76 REFERENCES `wydawnictwo`.`autorzy` (`id`)
77 ON DELETE NO ACTION
78 ON UPDATE NO ACTION)
79ENGINE = InnoDB;
80
81
82-- -----------------------------------------------------
83-- Table `wydawnictwo`.`rodzaje_kosztow`
84-- -----------------------------------------------------
85CREATE TABLE IF NOT EXISTS `wydawnictwo`.`rodzaje_kosztow` (
86 `id` INT NOT NULL AUTO_INCREMENT,
87 `typ` VARCHAR(255) NOT NULL,
88 PRIMARY KEY (`id`),
89 UNIQUE INDEX `id_UNIQUE` (`id` ASC),
90 UNIQUE INDEX `typ_UNIQUE` (`typ` ASC))
91ENGINE = InnoDB;
92
93
94-- -----------------------------------------------------
95-- Table `wydawnictwo`.`koszty`
96-- -----------------------------------------------------
97CREATE TABLE IF NOT EXISTS `wydawnictwo`.`koszty` (
98 `id` INT NOT NULL AUTO_INCREMENT,
99 `wartosc` DECIMAL(13,2) NOT NULL,
100 `rodzaj_kosztow_id` INT NOT NULL,
101 `ksiazki_id` INT NOT NULL,
102 PRIMARY KEY (`id`, `rodzaj_kosztow_id`, `ksiazki_id`),
103 INDEX `fk_koszty_rodzaj_kosztow1_idx` (`rodzaj_kosztow_id` ASC),
104 INDEX `fk_koszty_ksiazki1_idx` (`ksiazki_id` ASC),
105 UNIQUE INDEX `id_UNIQUE` (`id` ASC),
106 CONSTRAINT `fk_koszty_rodzaj_kosztow1`
107 FOREIGN KEY (`rodzaj_kosztow_id`)
108 REFERENCES `wydawnictwo`.`rodzaje_kosztow` (`id`)
109 ON DELETE NO ACTION
110 ON UPDATE NO ACTION,
111 CONSTRAINT `fk_koszty_ksiazki1`
112 FOREIGN KEY (`ksiazki_id`)
113 REFERENCES `wydawnictwo`.`ksiazki` (`id`)
114 ON DELETE NO ACTION
115 ON UPDATE NO ACTION)
116ENGINE = InnoDB;
117
118
119-- -----------------------------------------------------
120-- Table `wydawnictwo`.`kampanie_reklamowe`
121-- -----------------------------------------------------
122CREATE TABLE IF NOT EXISTS `wydawnictwo`.`kampanie_reklamowe` (
123 `id` INT NOT NULL AUTO_INCREMENT,
124 `ksiazki_id` INT NOT NULL,
125 `rodzaj_mediow` ENUM("TELEWIZJA", "PRASA", "RADIO", "INTERNET") NOT NULL,
126 `koszty_id` INT NULL,
127 PRIMARY KEY (`id`, `ksiazki_id`),
128 INDEX `fk_kampanie_reklamowe_ksiazki1_idx` (`ksiazki_id` ASC),
129 INDEX `fk_kampanie_reklamowe_koszty1_idx` (`koszty_id` ASC),
130 UNIQUE INDEX `id_UNIQUE` (`id` ASC),
131 CONSTRAINT `fk_kampanie_reklamowe_ksiazki1`
132 FOREIGN KEY (`ksiazki_id`)
133 REFERENCES `wydawnictwo`.`ksiazki` (`id`)
134 ON DELETE NO ACTION
135 ON UPDATE NO ACTION,
136 CONSTRAINT `fk_kampanie_reklamowe_koszty1`
137 FOREIGN KEY (`koszty_id`)
138 REFERENCES `wydawnictwo`.`koszty` (`id`)
139 ON DELETE NO ACTION
140 ON UPDATE NO ACTION)
141ENGINE = InnoDB;
142
143
144-- -----------------------------------------------------
145-- Table `wydawnictwo`.`typy_umowy`
146-- -----------------------------------------------------
147CREATE TABLE IF NOT EXISTS `wydawnictwo`.`typy_umowy` (
148 `id` INT NOT NULL AUTO_INCREMENT,
149 `typ` VARCHAR(255) NOT NULL,
150 PRIMARY KEY (`id`),
151 UNIQUE INDEX `typ_UNIQUE` (`typ` ASC),
152 UNIQUE INDEX `id_UNIQUE` (`id` ASC))
153ENGINE = InnoDB;
154
155
156-- -----------------------------------------------------
157-- Table `wydawnictwo`.`umowy`
158-- -----------------------------------------------------
159CREATE TABLE IF NOT EXISTS `wydawnictwo`.`umowy` (
160 `id` INT NOT NULL AUTO_INCREMENT,
161 `stawka` DECIMAL(13,2) NOT NULL,
162 `ustalnia` LONGTEXT NULL,
163 `typy_umowy_id` INT NOT NULL,
164 `autorzy_id` INT NOT NULL,
165 `autorzy_osoby_id` INT NOT NULL,
166 PRIMARY KEY (`id`, `typy_umowy_id`, `autorzy_id`, `autorzy_osoby_id`),
167 INDEX `fk_umowy_typy_umowy1_idx` (`typy_umowy_id` ASC),
168 INDEX `fk_umowy_autorzy1_idx` (`autorzy_id` ASC, `autorzy_osoby_id` ASC),
169 UNIQUE INDEX `id_UNIQUE` (`id` ASC),
170 CONSTRAINT `fk_umowy_typy_umowy1`
171 FOREIGN KEY (`typy_umowy_id`)
172 REFERENCES `wydawnictwo`.`typy_umowy` (`id`)
173 ON DELETE NO ACTION
174 ON UPDATE NO ACTION,
175 CONSTRAINT `fk_umowy_autorzy1`
176 FOREIGN KEY (`autorzy_id` , `autorzy_osoby_id`)
177 REFERENCES `wydawnictwo`.`autorzy` (`id` , `osoby_id`)
178 ON DELETE NO ACTION
179 ON UPDATE NO ACTION)
180ENGINE = InnoDB;
181
182
183-- -----------------------------------------------------
184-- Table `wydawnictwo`.`gatunki`
185-- -----------------------------------------------------
186CREATE TABLE IF NOT EXISTS `wydawnictwo`.`gatunki` (
187 `id` INT NOT NULL AUTO_INCREMENT,
188 `gatunek` VARCHAR(255) NOT NULL,
189 PRIMARY KEY (`id`),
190 UNIQUE INDEX `gatunek_UNIQUE` (`gatunek` ASC) ,
191 UNIQUE INDEX `id_UNIQUE` (`id` ASC))
192ENGINE = InnoDB;
193
194
195-- -----------------------------------------------------
196-- Table `wydawnictwo`.`gatunki_ksiazki`
197-- -----------------------------------------------------
198CREATE TABLE IF NOT EXISTS `wydawnictwo`.`gatunki_ksiazki` (
199 `ksiazki_id` INT NOT NULL,
200 `gatunki_id` INT NOT NULL,
201 PRIMARY KEY (`ksiazki_id`, `gatunki_id`),
202 INDEX `fk_ksiazki_has_gatunki_gatunki1_idx` (`gatunki_id` ASC),
203 INDEX `fk_ksiazki_has_gatunki_ksiazki1_idx` (`ksiazki_id` ASC),
204 CONSTRAINT `fk_ksiazki_has_gatunki_ksiazki1`
205 FOREIGN KEY (`ksiazki_id`)
206 REFERENCES `wydawnictwo`.`ksiazki` (`id`)
207 ON DELETE NO ACTION
208 ON UPDATE NO ACTION,
209 CONSTRAINT `fk_ksiazki_has_gatunki_gatunki1`
210 FOREIGN KEY (`gatunki_id`)
211 REFERENCES `wydawnictwo`.`gatunki` (`id`)
212 ON DELETE NO ACTION
213 ON UPDATE NO ACTION)
214ENGINE = InnoDB;
215
216
217-- -----------------------------------------------------
218-- Table `wydawnictwo`.`zaangazowane_osoby`
219-- -----------------------------------------------------
220CREATE TABLE IF NOT EXISTS `wydawnictwo`.`zaangazowane_osoby` (
221 `id` INT NOT NULL,
222 `osoby_id` INT NOT NULL,
223 PRIMARY KEY (`id`, `osoby_id`),
224 INDEX `fk_zaangazowane_osoby_osoby1_idx` (`osoby_id` ASC),
225 CONSTRAINT `fk_zaangazowane_osoby_osoby1`
226 FOREIGN KEY (`osoby_id`)
227 REFERENCES `wydawnictwo`.`osoby` (`id`)
228 ON DELETE NO ACTION
229 ON UPDATE NO ACTION)
230ENGINE = InnoDB;
231
232
233-- -----------------------------------------------------
234-- Table `wydawnictwo`.`funkcje_osob`
235-- -----------------------------------------------------
236CREATE TABLE IF NOT EXISTS `wydawnictwo`.`funkcje_osob` (
237 `id` INT NOT NULL AUTO_INCREMENT,
238 `funkcja` VARCHAR(45) NOT NULL,
239 PRIMARY KEY (`id`),
240 UNIQUE INDEX `id_UNIQUE` (`id` ASC))
241ENGINE = InnoDB;
242
243
244-- -----------------------------------------------------
245-- Table `wydawnictwo`.`funkcje_zaangazowanych_osob`
246-- -----------------------------------------------------
247CREATE TABLE IF NOT EXISTS `wydawnictwo`.`funkcje_zaangazowanych_osob` (
248 `zaangazowane_osoby_id` INT NOT NULL,
249 `funkcje_osob_id` INT NOT NULL,
250 PRIMARY KEY (`zaangazowane_osoby_id`, `funkcje_osob_id`),
251 INDEX `fk_zaangazowane_osoby_has_funkcje_osob_funkcje_osob1_idx` (`funkcje_osob_id` ASC),
252 INDEX `fk_zaangazowane_osoby_has_funkcje_osob_zaangazowane_osoby1_idx` (`zaangazowane_osoby_id` ASC),
253 CONSTRAINT `fk_zaangazowane_osoby_has_funkcje_osob_zaangazowane_osoby1`
254 FOREIGN KEY (`zaangazowane_osoby_id`)
255 REFERENCES `wydawnictwo`.`zaangazowane_osoby` (`id`)
256 ON DELETE NO ACTION
257 ON UPDATE NO ACTION,
258 CONSTRAINT `fk_zaangazowane_osoby_has_funkcje_osob_funkcje_osob1`
259 FOREIGN KEY (`funkcje_osob_id`)
260 REFERENCES `wydawnictwo`.`funkcje_osob` (`id`)
261 ON DELETE NO ACTION
262 ON UPDATE NO ACTION)
263ENGINE = InnoDB;
264
265
266-- -----------------------------------------------------
267-- Table `wydawnictwo`.`wersje_okladki`
268-- -----------------------------------------------------
269CREATE TABLE IF NOT EXISTS `wydawnictwo`.`wersje_okladki` (
270 `id` INT NOT NULL AUTO_INCREMENT,
271 `okladka` BLOB NOT NULL,
272 `data_stworzenia` DATE NOT NULL,
273 `ksiazki_id` INT NOT NULL,
274 PRIMARY KEY (`id`, `ksiazki_id`),
275 INDEX `fk_wersje_okladki_ksiazki1_idx` (`ksiazki_id` ASC),
276 UNIQUE INDEX `id_UNIQUE` (`id` ASC),
277 CONSTRAINT `fk_wersje_okladki_ksiazki1`
278 FOREIGN KEY (`ksiazki_id`)
279 REFERENCES `wydawnictwo`.`ksiazki` (`id`)
280 ON DELETE NO ACTION
281 ON UPDATE NO ACTION)
282ENGINE = InnoDB;
283
284
285-- -----------------------------------------------------
286-- Table `wydawnictwo`.`zgloszenia`
287-- -----------------------------------------------------
288CREATE TABLE IF NOT EXISTS `wydawnictwo`.`zgloszenia` (
289 `id` INT NOT NULL,
290 `ksiazki_id` INT NOT NULL,
291 PRIMARY KEY (`id`, `ksiazki_id`),
292 INDEX `fk_zgloszenia_ksiazki1_idx` (`ksiazki_id` ASC),
293 CONSTRAINT `fk_zgloszenia_ksiazki1`
294 FOREIGN KEY (`ksiazki_id`)
295 REFERENCES `wydawnictwo`.`ksiazki` (`id`)
296 ON DELETE NO ACTION
297 ON UPDATE NO ACTION)
298ENGINE = InnoDB;
299
300
301-- -----------------------------------------------------
302-- Table `wydawnictwo`.`spotkania`
303-- -----------------------------------------------------
304CREATE TABLE IF NOT EXISTS `wydawnictwo`.`spotkania` (
305 `id` INT NOT NULL AUTO_INCREMENT,
306 `miejsce_spotkania` VARCHAR(255) NOT NULL,
307 `data_czas_spotkania` DATETIME NOT NULL,
308 `tematyka_spotkania` VARCHAR(255) NOT NULL,
309 `kampanie_reklamowe_id` INT NOT NULL,
310 UNIQUE INDEX `id_UNIQUE` (`id` ASC) ,
311 PRIMARY KEY (`id`, `kampanie_reklamowe_id`),
312 INDEX `fk_spotkania_kampanie_reklamowe1_idx` (`kampanie_reklamowe_id` ASC),
313 CONSTRAINT `fk_spotkania_kampanie_reklamowe1`
314 FOREIGN KEY (`kampanie_reklamowe_id`)
315 REFERENCES `wydawnictwo`.`kampanie_reklamowe` (`id`)
316 ON DELETE NO ACTION
317 ON UPDATE NO ACTION)
318ENGINE = InnoDB;
319
320
321-- -----------------------------------------------------
322-- Table `wydawnictwo`.`osoby_zaangazowane_w_ksiazki`
323-- -----------------------------------------------------
324CREATE TABLE IF NOT EXISTS `wydawnictwo`.`osoby_zaangazowane_w_ksiazki` (
325 `zaangazowane_osoby_osoby_id` INT NOT NULL,
326 `ksiazki_id` INT NOT NULL,
327 PRIMARY KEY (`zaangazowane_osoby_osoby_id`, `ksiazki_id`),
328 INDEX `fk_zaangazowane_osoby_has_ksiazki_ksiazki1_idx` (`ksiazki_id` ASC),
329 INDEX `fk_zaangazowane_osoby_has_ksiazki_zaangazowane_osoby1_idx` (`zaangazowane_osoby_osoby_id` ASC),
330 CONSTRAINT `fk_zaangazowane_osoby_has_ksiazki_zaangazowane_osoby1`
331 FOREIGN KEY (`zaangazowane_osoby_osoby_id`)
332 REFERENCES `wydawnictwo`.`zaangazowane_osoby` (`osoby_id`)
333 ON DELETE NO ACTION
334 ON UPDATE NO ACTION,
335 CONSTRAINT `fk_zaangazowane_osoby_has_ksiazki_ksiazki1`
336 FOREIGN KEY (`ksiazki_id`)
337 REFERENCES `wydawnictwo`.`ksiazki` (`id`)
338 ON DELETE NO ACTION
339 ON UPDATE NO ACTION)
340ENGINE = InnoDB;
341
342
343SET SQL_MODE=@OLD_SQL_MODE;
344SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
345SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;