· 7 years ago · Oct 09, 2018, 09:58 PM
1SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
2SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
3SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
4
5CREATE SCHEMA IF NOT EXISTS `hackathon_cmsp` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
6USE `hackathon_cmsp` ;
7
8-- -----------------------------------------------------
9-- Table `hackathon_cmsp`.`partido`
10-- -----------------------------------------------------
11DROP TABLE IF EXISTS `hackathon_cmsp`.`partido` ;
12
13CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`partido` (
14 `id` CHAR(4) NOT NULL ,
15 `nome` VARCHAR(255) NULL COMMENT ' ' ,
16 `criacao` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
17 PRIMARY KEY (`id`) )
18ENGINE = InnoDB;
19
20
21-- -----------------------------------------------------
22-- Table `hackathon_cmsp`.`politico`
23-- -----------------------------------------------------
24DROP TABLE IF EXISTS `hackathon_cmsp`.`politico` ;
25
26CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`politico` (
27 `id` INT NOT NULL AUTO_INCREMENT ,
28 `criacao` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
29 `nome` VARCHAR(45) NOT NULL ,
30 `partido_id` CHAR(4) NOT NULL ,
31 `id_interno` INT NULL ,
32 PRIMARY KEY (`id`) ,
33 INDEX `fk_parlamentar_partido` (`partido_id` ASC) ,
34 CONSTRAINT `fk_parlamentar_partido`
35 FOREIGN KEY (`partido_id` )
36 REFERENCES `hackathon_cmsp`.`partido` (`id` )
37 ON DELETE CASCADE
38 ON UPDATE CASCADE)
39ENGINE = InnoDB;
40
41
42-- -----------------------------------------------------
43-- Table `hackathon_cmsp`.`sessaoTipo`
44-- -----------------------------------------------------
45DROP TABLE IF EXISTS `hackathon_cmsp`.`sessaoTipo` ;
46
47CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`sessaoTipo` (
48 `id` INT NOT NULL AUTO_INCREMENT ,
49 `nome` VARCHAR(45) NOT NULL ,
50 `criacao` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
51 PRIMARY KEY (`id`) )
52ENGINE = InnoDB;
53
54
55-- -----------------------------------------------------
56-- Table `hackathon_cmsp`.`esfera`
57-- -----------------------------------------------------
58DROP TABLE IF EXISTS `hackathon_cmsp`.`esfera` ;
59
60CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`esfera` (
61 `id` INT NOT NULL AUTO_INCREMENT ,
62 `sigla` VARCHAR(10) NOT NULL ,
63 `nome` VARCHAR(255) NOT NULL ,
64 `poder` ENUM('Judiciario', 'Legislativo', 'Executivo') NOT NULL ,
65 `limite` ENUM('Uniao', 'Estado', 'MunicÃpio') NOT NULL ,
66 `criacao` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
67 PRIMARY KEY (`id`) )
68ENGINE = InnoDB
69COMMENT = 'É a esfera polÃtica onde';
70
71
72-- -----------------------------------------------------
73-- Table `hackathon_cmsp`.`sessao`
74-- -----------------------------------------------------
75DROP TABLE IF EXISTS `hackathon_cmsp`.`sessao` ;
76
77CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`sessao` (
78 `id` INT NOT NULL AUTO_INCREMENT ,
79 `esfera_id` INT NOT NULL ,
80 `sessaoTipo_id` INT NOT NULL ,
81 `data` DATE NOT NULL ,
82 `descricao` TEXT NOT NULL ,
83 `codigo` VARCHAR(45) NOT NULL ,
84 `criacao` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
85 PRIMARY KEY (`id`) ,
86 INDEX `fk_sessao_sessaotipo` (`sessaoTipo_id` ASC) ,
87 INDEX `fk_sessao_esfera1` (`esfera_id` ASC) ,
88 CONSTRAINT `fk_sessao_sessaotipo`
89 FOREIGN KEY (`sessaoTipo_id` )
90 REFERENCES `hackathon_cmsp`.`sessaoTipo` (`id` )
91 ON DELETE CASCADE
92 ON UPDATE CASCADE,
93 CONSTRAINT `fk_sessao_esfera1`
94 FOREIGN KEY (`esfera_id` )
95 REFERENCES `hackathon_cmsp`.`esfera` (`id` )
96 ON DELETE CASCADE
97 ON UPDATE CASCADE)
98ENGINE = InnoDB;
99
100
101-- -----------------------------------------------------
102-- Table `hackathon_cmsp`.`politicoNome`
103-- -----------------------------------------------------
104DROP TABLE IF EXISTS `hackathon_cmsp`.`politicoNome` ;
105
106CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`politicoNome` (
107 `id` INT NOT NULL AUTO_INCREMENT ,
108 `politico_id` INT NOT NULL ,
109 `nome` VARCHAR(255) NOT NULL ,
110 `criacao` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
111 PRIMARY KEY (`id`, `politico_id`) ,
112 CONSTRAINT `fk_nome_parlamentar1`
113 FOREIGN KEY (`politico_id` )
114 REFERENCES `hackathon_cmsp`.`politico` (`id` )
115 ON DELETE CASCADE
116 ON UPDATE CASCADE)
117ENGINE = InnoDB;
118
119
120-- -----------------------------------------------------
121-- Table `hackathon_cmsp`.`mandato`
122-- -----------------------------------------------------
123DROP TABLE IF EXISTS `hackathon_cmsp`.`mandato` ;
124
125CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`mandato` (
126 `id` INT NOT NULL AUTO_INCREMENT ,
127 `criacao` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
128 `inicio` DATE NOT NULL ,
129 `fim` DATE NOT NULL ,
130 PRIMARY KEY (`id`) )
131ENGINE = InnoDB;
132
133
134-- -----------------------------------------------------
135-- Table `hackathon_cmsp`.`presenca`
136-- -----------------------------------------------------
137DROP TABLE IF EXISTS `hackathon_cmsp`.`presenca` ;
138
139CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`presenca` (
140 `id` INT NOT NULL ,
141 `sessao_id` INT NOT NULL ,
142 `politico_id` INT NOT NULL ,
143 `hora` TIME NOT NULL ,
144 `criacao` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
145 PRIMARY KEY (`id`) ,
146 INDEX `fk_presenca_sessao` (`sessao_id` ASC) ,
147 INDEX `fk_presenca_parlamentar` (`politico_id` ASC) ,
148 CONSTRAINT `fk_presenca_sessao`
149 FOREIGN KEY (`sessao_id` )
150 REFERENCES `hackathon_cmsp`.`sessao` (`id` )
151 ON DELETE CASCADE
152 ON UPDATE CASCADE,
153 CONSTRAINT `fk_presenca_parlamentar`
154 FOREIGN KEY (`politico_id` )
155 REFERENCES `hackathon_cmsp`.`politico` (`id` )
156 ON DELETE CASCADE
157 ON UPDATE CASCADE)
158ENGINE = InnoDB;
159
160
161-- -----------------------------------------------------
162-- Table `hackathon_cmsp`.`votacao`
163-- -----------------------------------------------------
164DROP TABLE IF EXISTS `hackathon_cmsp`.`votacao` ;
165
166CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`votacao` (
167 `id` INT NOT NULL AUTO_INCREMENT ,
168 `sessao_id` INT NOT NULL ,
169 `id_interno` TEXT NOT NULL ,
170 `matéria` TEXT NOT NULL ,
171 `data` DATE NOT NULL ,
172 `nome` TEXT NOT NULL ,
173 `tipo_votacao` VARCHAR(255) NULL ,
174 `resultado` VARCHAR(255) NULL ,
175 `ementa` TEXT NULL ,
176 `notas_rodape` TEXT NULL ,
177 PRIMARY KEY (`id`) ,
178 INDEX `fk_votacao_sessao1` (`sessao_id` ASC) ,
179 CONSTRAINT `fk_votacao_sessao1`
180 FOREIGN KEY (`sessao_id` )
181 REFERENCES `hackathon_cmsp`.`sessao` (`id` )
182 ON DELETE CASCADE
183 ON UPDATE CASCADE)
184ENGINE = InnoDB;
185
186
187-- -----------------------------------------------------
188-- Table `hackathon_cmsp`.`voto`
189-- -----------------------------------------------------
190DROP TABLE IF EXISTS `hackathon_cmsp`.`voto` ;
191
192CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`voto` (
193 `id` INT NOT NULL AUTO_INCREMENT ,
194 `votacao_id` INT NOT NULL ,
195 `politico_id` INT NOT NULL ,
196 `voto` ENUM('S', 'N', 'A', 'O') NOT NULL COMMENT 'Sim\nNão\nAbstenção\nObstrução (Não votou)' ,
197 `criacao` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
198 PRIMARY KEY (`id`) ,
199 INDEX `fk_voto_parlamentar` (`politico_id` ASC) ,
200 INDEX `fk_voto_votacao1` (`votacao_id` ASC) ,
201 CONSTRAINT `fk_voto_parlamentar`
202 FOREIGN KEY (`politico_id` )
203 REFERENCES `hackathon_cmsp`.`politico` (`id` )
204 ON DELETE CASCADE
205 ON UPDATE CASCADE,
206 CONSTRAINT `fk_voto_votacao1`
207 FOREIGN KEY (`votacao_id` )
208 REFERENCES `hackathon_cmsp`.`votacao` (`id` )
209 ON DELETE CASCADE
210 ON UPDATE CASCADE)
211ENGINE = InnoDB;
212
213
214-- -----------------------------------------------------
215-- Table `hackathon_cmsp`.`meteriaTipo`
216-- -----------------------------------------------------
217DROP TABLE IF EXISTS `hackathon_cmsp`.`meteriaTipo` ;
218
219CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`meteriaTipo` (
220 `id` INT NOT NULL AUTO_INCREMENT ,
221 `criacao` TIMESTAMP NOT NULL ,
222 `codigo` VARCHAR(45) NOT NULL ,
223 `abreviacao` VARCHAR(45) NOT NULL ,
224 PRIMARY KEY (`id`) )
225ENGINE = InnoDB;
226
227
228-- -----------------------------------------------------
229-- Table `hackathon_cmsp`.`materia`
230-- -----------------------------------------------------
231DROP TABLE IF EXISTS `hackathon_cmsp`.`materia` ;
232
233CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`materia` (
234 `id` INT NOT NULL AUTO_INCREMENT ,
235 `id_interno` TEXT NOT NULL ,
236 `politico_id` INT NOT NULL ,
237 `meteriaTipo_id` INT NOT NULL ,
238 `criacao` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
239 PRIMARY KEY (`id`) ,
240 INDEX `fk_materia_parlamentar` (`politico_id` ASC) ,
241 INDEX `fk_materia_meteriatipo` (`meteriaTipo_id` ASC) ,
242 CONSTRAINT `fk_materia_parlamentar`
243 FOREIGN KEY (`politico_id` )
244 REFERENCES `hackathon_cmsp`.`politico` (`id` )
245 ON DELETE CASCADE
246 ON UPDATE CASCADE,
247 CONSTRAINT `fk_materia_meteriatipo`
248 FOREIGN KEY (`meteriaTipo_id` )
249 REFERENCES `hackathon_cmsp`.`meteriaTipo` (`id` )
250 ON DELETE CASCADE
251 ON UPDATE CASCADE)
252ENGINE = InnoDB;
253
254
255-- -----------------------------------------------------
256-- Table `hackathon_cmsp`.`despesatipo`
257-- -----------------------------------------------------
258DROP TABLE IF EXISTS `hackathon_cmsp`.`despesatipo` ;
259
260CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`despesatipo` (
261 `id` INT NOT NULL AUTO_INCREMENT ,
262 `criacao` TIMESTAMP NOT NULL ,
263 `descricao` VARCHAR(45) NOT NULL ,
264 PRIMARY KEY (`id`) )
265ENGINE = InnoDB;
266
267
268-- -----------------------------------------------------
269-- Table `hackathon_cmsp`.`empresa`
270-- -----------------------------------------------------
271DROP TABLE IF EXISTS `hackathon_cmsp`.`empresa` ;
272
273CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`empresa` (
274 `id` INT NOT NULL AUTO_INCREMENT ,
275 `cnpj` INT NOT NULL ,
276 `razao_social` VARCHAR(255) NOT NULL ,
277 `criacao` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
278 PRIMARY KEY (`id`) ,
279 UNIQUE INDEX `cnpj_UNIQUE` (`cnpj` ASC) )
280ENGINE = InnoDB;
281
282
283-- -----------------------------------------------------
284-- Table `hackathon_cmsp`.`despesa`
285-- -----------------------------------------------------
286DROP TABLE IF EXISTS `hackathon_cmsp`.`despesa` ;
287
288CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`despesa` (
289 `id` INT NOT NULL AUTO_INCREMENT ,
290 `criacao` TIMESTAMP NOT NULL ,
291 `valor` FLOAT NOT NULL ,
292 `despesatipo_id` INT NOT NULL ,
293 `empresa_id` INT NOT NULL ,
294 `parlamentar_id` INT NOT NULL ,
295 PRIMARY KEY (`id`) ,
296 INDEX `fk_despesa_despesatipo1` (`despesatipo_id` ASC) ,
297 INDEX `fk_despesa_empresa1` (`empresa_id` ASC) ,
298 INDEX `fk_despesa_parlamentar1` (`parlamentar_id` ASC) ,
299 CONSTRAINT `fk_despesa_despesatipo1`
300 FOREIGN KEY (`despesatipo_id` )
301 REFERENCES `hackathon_cmsp`.`despesatipo` (`id` )
302 ON DELETE CASCADE
303 ON UPDATE CASCADE,
304 CONSTRAINT `fk_despesa_empresa1`
305 FOREIGN KEY (`empresa_id` )
306 REFERENCES `hackathon_cmsp`.`empresa` (`id` )
307 ON DELETE CASCADE
308 ON UPDATE CASCADE,
309 CONSTRAINT `fk_despesa_parlamentar1`
310 FOREIGN KEY (`parlamentar_id` )
311 REFERENCES `hackathon_cmsp`.`politico` (`id` )
312 ON DELETE CASCADE
313 ON UPDATE CASCADE)
314ENGINE = InnoDB;
315
316
317-- -----------------------------------------------------
318-- Table `hackathon_cmsp`.`materiaTag`
319-- -----------------------------------------------------
320DROP TABLE IF EXISTS `hackathon_cmsp`.`materiaTag` ;
321
322CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`materiaTag` (
323 `id` INT NOT NULL AUTO_INCREMENT ,
324 `nome` VARCHAR(45) NOT NULL ,
325 `criacao` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
326 PRIMARY KEY (`id`) )
327ENGINE = InnoDB;
328
329
330-- -----------------------------------------------------
331-- Table `hackathon_cmsp`.`materia_materiatag`
332-- -----------------------------------------------------
333DROP TABLE IF EXISTS `hackathon_cmsp`.`materia_materiatag` ;
334
335CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`materia_materiatag` (
336 `materia_id` INT NOT NULL ,
337 `materiaTag_id` INT NOT NULL ,
338 INDEX `fk_materia_materiatag_materiatag` (`materiaTag_id` ASC) ,
339 INDEX `fk_materia_materiatag_materia` (`materia_id` ASC) ,
340 PRIMARY KEY (`materia_id`, `materiaTag_id`) ,
341 CONSTRAINT `fk_materia_materiatag_materia`
342 FOREIGN KEY (`materia_id` )
343 REFERENCES `hackathon_cmsp`.`materia` (`id` )
344 ON DELETE CASCADE
345 ON UPDATE CASCADE,
346 CONSTRAINT `fk_materia_materiatag_materiatag`
347 FOREIGN KEY (`materiaTag_id` )
348 REFERENCES `hackathon_cmsp`.`materiaTag` (`id` )
349 ON DELETE CASCADE
350 ON UPDATE CASCADE)
351ENGINE = InnoDB;
352
353
354-- -----------------------------------------------------
355-- Table `hackathon_cmsp`.`esfera_mandato`
356-- -----------------------------------------------------
357DROP TABLE IF EXISTS `hackathon_cmsp`.`esfera_mandato` ;
358
359CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`esfera_mandato` (
360 `esfera_id` INT NOT NULL ,
361 `mandato_id` INT NOT NULL ,
362 PRIMARY KEY (`esfera_id`, `mandato_id`) ,
363 INDEX `fk_esfera_mandato_mandato1` (`mandato_id` ASC) ,
364 INDEX `fk_esfera_mandato_esfera1` (`esfera_id` ASC) ,
365 CONSTRAINT `fk_esfera_mandato_esfera1`
366 FOREIGN KEY (`esfera_id` )
367 REFERENCES `hackathon_cmsp`.`esfera` (`id` )
368 ON DELETE CASCADE
369 ON UPDATE CASCADE,
370 CONSTRAINT `fk_esfera_mandato_mandato1`
371 FOREIGN KEY (`mandato_id` )
372 REFERENCES `hackathon_cmsp`.`mandato` (`id` )
373 ON DELETE CASCADE
374 ON UPDATE CASCADE)
375ENGINE = InnoDB;
376
377
378-- -----------------------------------------------------
379-- Table `hackathon_cmsp`.`mandato_politico`
380-- -----------------------------------------------------
381DROP TABLE IF EXISTS `hackathon_cmsp`.`mandato_politico` ;
382
383CREATE TABLE IF NOT EXISTS `hackathon_cmsp`.`mandato_politico` (
384 `mandato_id` INT NOT NULL ,
385 `politico_id` INT NOT NULL ,
386 PRIMARY KEY (`mandato_id`, `politico_id`) ,
387 INDEX `fk_mandato_parlamentar_parlamentar1` (`politico_id` ASC) ,
388 INDEX `fk_mandato_parlamentar_mandato1` (`mandato_id` ASC) ,
389 CONSTRAINT `fk_mandato_parlamentar_mandato1`
390 FOREIGN KEY (`mandato_id` )
391 REFERENCES `hackathon_cmsp`.`mandato` (`id` )
392 ON DELETE CASCADE
393 ON UPDATE CASCADE,
394 CONSTRAINT `fk_mandato_parlamentar_parlamentar1`
395 FOREIGN KEY (`politico_id` )
396 REFERENCES `hackathon_cmsp`.`politico` (`id` )
397 ON DELETE CASCADE
398 ON UPDATE CASCADE)
399ENGINE = InnoDB;
400
401USE `hackathon_cmsp`;
402
403DELIMITER $$
404
405USE `hackathon_cmsp`$$
406DROP TRIGGER IF EXISTS `hackathon_cmsp`.`SYNTAX_ERROR_1` $$
407USE `hackathon_cmsp`$$
408CREATE TRIGGER `populatePartidos` BEFORE INSERT ON `politico`
409FOR EACH ROW BEGIN
410 SET NEW.partido_id = UPPER(NEW.partido_id)
411 SELECT COUNT(p.id) into @SIGLA FROM partido as p WHERE id = NEW.partido_id;
412 IF @SIGLA = 0 THEN
413 INSERT INTO partido (id) VALUES (UPPER(NEW.partido_id));
414 END IF;
415END$$
416
417
418DELIMITER ;
419
420
421SET SQL_MODE=@OLD_SQL_MODE;
422SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
423SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
424
425-- -----------------------------------------------------
426-- Data for table `hackathon_cmsp`.`esfera`
427-- -----------------------------------------------------
428START TRANSACTION;
429USE `hackathon_cmsp`;
430INSERT INTO `hackathon_cmsp`.`esfera` (`id`, `sigla`, `nome`, `poder`, `limite`, `criacao`) VALUES (NULL, NULL, 'Presidente', 'Executivo', 'Uniao', '');
431INSERT INTO `hackathon_cmsp`.`esfera` (`id`, `sigla`, `nome`, `poder`, `limite`, `criacao`) VALUES (NULL, NULL, 'Governador', 'Executivo', 'Estado', NULL);
432
433COMMIT;