Sei sulla pagina 1di 21

Universidade Catlica de Braslia

PR-REITORIA DE ESPECIALIZAO E PESQUISA

PROJETO DE SISTEMA PARA GERNCIA DE CAMPANHA POLTICA


Autor: Joo Elias Brasil Bentes Junior

BRASLIA

2011

JOO ELIAS BRASIL BENTES JUNIOR

PROJETO DE SISTEMA PARA GERNCIA DE CAMPANHA POLTICA

Relatrio apresentado ao curso de Ps Graduao em Desenvolvimento de Sistemas com Software Livre da Universidade Catlica de Braslia.

Braslia 2011

SUMRIO
INTRODUO 1. OBJETIVOS 1.i OBJETIVOS GERAIS 1.ii OBJETIVOS ESPECFICOS 2. RESULTADOS ESPERADOS 3. PROBLEMAS DIAGNOSTICADOS 4. RESTRIES 5. CUSTO X BENEFCIO 6. USURIOS DA SOLUO 7. REGRAS DO NEGCIO 8. PROPOSTA DE SOLUO 9. REQUISITOS 9.i. FUNCIONAIS 9.ii. NO-FUNCIONAIS 10. MODELOS 11. CONCLUSO REFERNCIAS BIBLIOGRFICAS ANEXOS ....................................................... ....................................................... ....................................................... ....................................................... ....................................................... ....................................................... ....................................................... ....................................................... ....................................................... ....................................................... ....................................................... ....................................................... ....................................................... ....................................................... ....................................................... ....................................................... ....................................................... ............................................................ 2 3 3 3 3 3 4 4 4 4 5 6 6 6 7 8 8 9

LISTA DE FIGURAS
Figura 1. Projeto Conceitual (MER) ........................................ 7

INTRODUO

De dois em dois anos acontecem Eleies Diretas para escolha dos representantes polticos de nvel municipal, estadual e/ou nacional. Segundo a Legislao Eleitoral, qualquer cidado brasileiro maior de 18 anos, obedecendo um idade mnima em alguns cargo, pode candidatar-se a um cargo pblico. O processo de organizao e apresentao de ideias chama-se campanha eleitoral (OLIVEIRA, 2006). O candidato precisa comunicar--se de maneira eficiente com o com o eleitor. O candidato apresenta ao eleitor as suas comunicaes, ideias, programa, promessas, compromissos, a partir da mdia jornal, revista, materiais de propaganda, internet, etc. O eleitor analisa, interpreta, injeta na mente as comunicaes do candidato; e no dia da eleio, realimenta o candidato com o voto. Ou seja, o objetivo do candidato receber o voto do eleitor, e o feedback representa o voto do eleitor (SIMES, 2011) . Os candidatos precisam, em suma, convencer os seus eleitores de que suas propostas podem melhorar diretamente ou indiretamente as suas vidas. Diversos meios de comunicao so utilizados para isso: redes sociais, rdio, TV, websites, etc. Nesse contexto complexo de comunicao, e com o intuito de viabilizar o entendimento sobre as necessidades a longo prazo e sobre as necessidades urgente dos eleitores, faz-se necessria a organizao de todas atividades, pessoas, discursos e tudo gerado durante esse processo. Com isso, um sistema de informao que permita esse controle torna-se uma pea fundamental para o sucesso de uma campanha. Este documento apresenta o projeto de um pequeno sistema que visa auxiliar um candidato a controlar todos os artefatos gerados e finanas em sua campanha poltica atual e passadas.

1. OBJETIVOS

i. GERAIS Projetar um sistema web que armazene dados referentes a vrias campanhas polticas de um cidado. i. ESPECFICOS Projetar uma base de dados para web usando um SGBD livre. Projetar um sistema simples e fcil de usar. 2. RESULTADOS ESPERADOS Um sistema web de fcil utilizao que armazene dados de custo, atividades e pessoas envolvidas em campanhas polticas deste cidado. Uma base de dados enxuta e simples. 3. PROBLEMAS DIAGNOSTICADOS O controle das atividades, pessoas e finanas de uma campanha era realizado de maneira manual. No h o devido controle de pessoal envolvido com a campanha. Os contatos de apoio eram listados em uma pequena agenda telefnica sob responsabilidade de um dos assessores do candidato. O controle dos assessores s era possvel atravs da folha de pagamento. Uma planilha eletrnica era utilizada para registrar as entradas e sadas de recursos. Esta a nica forma computacional utilizada para auxiliar o controle, pois todo candidato deve declarar o dinheiro gasto e recebido em sua campanha. Alm disso, todos os recibos so armazenados em papel em uma pasta pela equipe de assessores. As atividades eram registradas na agenda do candidato tambm. Os seus discursos eram gravados, tanto em udio quanto em vdeo, e arquivados em pastas avulsas dentro de um computador de um dos assessores. Os textos tambm eram arquivados nessa pasta. S era possvel saber onde a equipe tinha ficado hospedada por meio da busca nos recibos de pagamento e na agenda do candidato. Tudo centralizado na agenda deste candidato. Tudo era escrito a mo. No havia qualquer segurana quanto a perda desses dados. No possvel gerar relatrios de maneira automatizada de atividades ou pessoas envolvidas. Apenas relatrios financeiros eram possveis, devido ao uso da planilha eletrnica. O usurio no tinha qualquer controle sobre as suas aes em uma campanha. Ele no sabia quais eram as suas promessas e quando as tinha feito. Ele no sabia exatamente quanto tinha gastado e quando. Era impossvel apontar onde possivelmente esta o seu durante a campanha. No sabia exatamente quais as atividades que foram realizadas em cada cidade. 4 4. RESTRIES

O sistema deve ser desenvolvido com software livre e para a plataforma web. 5. CUSTO X BENEFCIO A escolha de um Sistema de plataforma WEB possibilita centralizar o gerenciamento da informao, reduzir custo de hardware e manuteno, isso se d porque toda a aplicao instalada nos servidores e os usurios necessitam apenas de desktops, notebooks, smartphones ou tablets pc com capacidade de rodar um navegador de internet. Essa centralizao tambm reduz o custo com a manuteno de verses do sistema. O uso do Software Livre, permite que o cliente fique desimpedido para substituir o fornecedor quando os servios prestados no forem mais do seu agrado, pois lhe ser disponibilizado acesso ao cdigo-fonte da aplicao, podendo repassar o servio para outro fornecedor dar continuidade. Alm de que no ser necessrio um investimento inicial com compra de licenas de softwares, o que j reduz substancialmente o preo do sistema. Apesar de todas as caractersticas citadas acima, o sistema de pequeno porte, mas mesmo assim traz um grande impacto na anlise de dados de uma ou mais campanhas polticas de um cidado. A possibilidade de poder mensurar tudo as principais atividades, gastos, materiais de campanha, discursos, promessas, pessoas envolvidas, eventos etc j o torna um diferencial uma pea fundamental para analisar os pontos positivos e negativos de uma campanha poltica. 6. USURIOS DA SOLUO Candidato e seus assessores: possuem os mesmos direitos dentro do sistema. Podem cadastrar, editar, excluir e consultar quaisquer dados. Alm disso, tambm podem consultar os relatrios disponveis no sistema. 7. REGRAS DE NEGCIO Ele pode ser candidato a vereador, deputado estadual, deputado federal, senador, governador, prefeito ou presidente. Seus gastos nesse empreendimento sero controlados, bem como os tipos e as fontes de rendas captadas (doaes e origens) para a realizao das campanhas. Podero ser feitas coligaes (alianas formais) com outros partidos, porm apenas uma por eleio. Essas coligaes no so fixas para todas as eleies. Pode-se realizar coligaes com diversos partidos polticos em cada eleio, e em cada uma poder haver acordos firmados. 5 Armazenar as promessas de campanha, bem como seus discursos (texto e vdeo) em cada evento que participar. Monitorar as cidades visitadas, os hotis de hospedagem, os contatos de apoio nesses locais e as

organizaes envolvidas, atividades desenvolvidas em cada uma. Acompanhar todo o quadro de pessoal de assessoria que o apia em cada eleio. 8. PROPOSTA DE SOLUO O usurio deve logar no sistema antes de qualquer coisa. Apesar de no haver diferenciao de papis dentro do sistema, todas as operaes de insero, alterao e excluso sero registradas em uma tabela de Log. Um usurio administrativo foi criado para manter os usurios do sistema. As permisses so iguais a todos os usurios comuns. Em suma, este um sistema CRUD (Create, Retrieve, Update e Delete), ou seja, basicamente permitir o registro, a alterao, a excluso e a consulta dos dados de uma campanha atravs de formulrios. Para este sistema, uma campanha poltica, em suma um conjunto de atividades, documentos, relacionamentos de pessoas e lanamentos financeiros. Tudo est relacionado com a Campanha. A princpio deve ser instanciada uma campanha. Logo aps, ser possvel atrelar a ela todas as atividades, finanas, contatos, assessores e materiais referentes. No primeiro acesso ao sistema, um formulrio para cadastro de uma pessoa ser solicitado. Os dados do candidato devem ser inseridos neste formulrio. Logo aps ser possvel gerenciar as campanhas do mesmo. Para facilitar o cadastro de uma campanha, ser realizada uma carga inicial na tabela Partido, onde sero preenchidos os dados dos partidos polticos devidamente institudos no dia da implantao do sistema. Existe o conceito de Pessoa no sistema. Uma Pessoa pode ser uma empresa, um assessor, um contato, uma comunidade, o prprio candidato e qualquer entidade que possa vir a precisar registrar no sistema. Estas podem ter endereos e telefones que podem vir a ser teis em um determinado momento. O formulrio de cadastro de uma Pessoa est vinculado diretamente as funcionalidades do sistema, portanto, no possvel simplesmente cadastrar uma Pessoa sem dizer se ela a Origem/Destino de um Lanamento, um Contato de Apoio, um Candidato, o local de uma Atividade, um autor de Material Produzido, um Assessor ou um Hotel/Pousada de Hospedagem. Os Lanamentos Financeiros sero realizados de maneira simples. Apenas registrando os valores, uma breve descrio e qual a origem(em caso de crdito) e qual o destino(em caso de dbito). A data e a hora de sua gerao tambm sero armazenados. Ele deve seguir uma interface que simula uma tabela eletrnica dentro do sistema. possvel vincular uma Pessoa Jurdica ou uma Pessoa Fsica ao Lanamento, o qual ser a origem da entrada de recursos ou destino da sada de recursos. Uma atividade pode ser desde um comcio at uma reunio entre os membros da coligao. O local e a data (incio e fim) deste evento devem ser registrados. Todos os Assessores e Contatos envolvidos a uma atividade podem ser registrados. 6 Em algumas oportunidades tambm ser necessrio vincular um local de Hospedagem a essa Atividade, o que tambm est previsto no formulrio de cadastro. Todo documento, foto, discurso etc gerado nas Atividades, e que seja relevante para a campanha, deve ser registrado e importado no sistema. O formulrio de

cadastro de um Material Produzido permitir o upload do arquivo, seja ele um documento de texto, um udio ou um vdeo. Os Contatos de Apoio podem ser registrados de acordo com o seu envolvimento em Atividades da Campanha ou no. O formulrio para insero de Contatos estar disponvel independentemente de uma Atividade, portanto, o que viabiliza essas duas possibilidades citadas. O candidato pode acompanhar todos os registros de sua campanha de acordo com que os dados so inseridos no sistema. O controle financeiro e de atividades relacionadas etc pode ser consultado a qualquer momento e de qualquer computador (notebook, tablet pc, smartphone etc) que possua uma acesso a internet. Para facilitar essa visualizao, o sistema contar, inicialmente, com os seguintes relatrios: Atividades realizadas por perodo. Assessores envolvidos em atividades por perodo. Materiais produzidos por atividade. Balano financeiro por perodo. O sistema ser desenvolvido na linguagem Python 2.7.1, atravs da IDE IDLLE. O SGBD escolhido foi o MYSQL 5.1. Para criao dos modelos do banco de dados foram usados o MYSQL Workbench 5.2.31 e Power Architect 1.0.6. 9. REQUISITOS i. FUNCIONAIS Manter Atividades realizadas, onde cada uma foi realizada e quem so as pessoas envolvidas. Manter Campanhas. Manter Assessores. Manter Partidos. Manter Coligaes. Manter Pessoas. Manter Materiais Produzidos de cada atividade realizada. Manter Contatos de Apoio, armazenando seus dados principais.. Manter Lanamentos Financeiros, tanto de entrada quanto de sada. i. NO-FUNCIONAIS Interface amigvel e leve. Compatvel com os navegadores Internet Explorer 8, Mozilla Firefox 3.5 e Google Chrome 10.0. Relatrio de atividades realizadas por cidade e por perodo. Relatrio de assessores envolvidos em atividades por perodo. Relatrio de materiais produzidos por atividade. Relatrio de balano financeiro por perodo. 7 10. MODELOS

O projeto conceitual do banco de dados foi criado no MySQL Workbench 5.2 SE. Este MER demonstrado na Figura 1.

Figura 1: Projeto Lgico

8 11. CONCLUSO

Pequenos sistemas podem ter grande impacto em uma organizao dependendo de como este for planejado e implementado. A princpio o software proposto atende a todos os requisitos iniciais do cliente. Caso surjam novas necessidades, este est perfeitamente pronto para uma atualizao. Alis, o fato de estar na plataforma web, facilita esse controle de verses. A necessidade deste candidato pode ser de outros tambm, portanto, uma soluo est praticamente pronta para caso haja uma nova necessidade. O acesso a informao por parte dos eleitores aumentou consideravelmente nos ltimos anos. Isso fora que o candidato tenha controle sobre todo e qualquer material produzido em sua campanha, desde textos em seus perfis em sites de relacionamento at discursos em eventos. Isso faz com que um sistema de informao para gerenciar um campanha virou peo fundamental para o andamento da mesma. Alm de que, saber detectar os erros de uma campanha pode ser crucial para ganhar a prxima. O controle financeiro extremamente necessrio, pois, todo candidato tem que prestar conta dos valores da sua campanha com a Justia Eleitoral. O sistema no aponta onde podem estar as falhas, mas d dados referentes aos dados alimentados, possibilitando o total controle do que aconteceu e do que pode acontecer em sua campanha. Com o intuito de viabilizar o desenvolvimento de acordo com os requisitos do usurio e o tempo disposto, desse software foram utilizadas ferramentas livres de grande uso no mercado. Ele foi desenvolvido na linguagem Python 2.7.1 e usa o SGBD MySQL 5.1 Alm disso, o uso do framework MySQL Worbench. 5.2.31 agilizou a criao da base de dados atravs da sua integrao do modelo lgico com a implementao do banco. REFERNCIAS BIBLIOGRFICAS SIMES, Roberta. Cinco dicas para uma boa campanha poltica Planejamento de Campanha. Disponvel em <http://www.omelhordomarketing.com.br/index.php/2010/03/02/cinco-dicas-parauma-boa-campanha-politica-planejamento-de-campanha/>. Acesso em: 08 abril 2011. OLIVEIRA, Jorge. Campanha Poltica Como Ganhar Uma Eleio: Regras E Dicas. 1 ed. So Paulo. Editora Girafa, 2006. 200p. MYSQL 5.5 REFERENCE MANUAL. Disponvel em <http://dev.mysql.com/doc/refman/5.5/en/>. Acesso em: 08 abril de 2011. MYSQL WORKBENCH DOCUMENTATION. Disponvel em: < http://dev.mysql.com/doc/workbench/en/> . Acesso em: 08 abril de 2011. 9

ANEXOS

ANEXO I SCRIPTS DE CRIAO DO BANCO DE DADOS

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL'; CREATE SCHEMA IF NOT EXISTS `CarreiraPolitica` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ; USE `CarreiraPolitica` ; -- ------------------------------------------------------ Table `CarreiraPolitica`.`Endereco` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `CarreiraPolitica`.`Endereco` ( `idEndereco` INT NOT NULL , `tipoLogradouroEndereco` VARCHAR(45) NULL , `nomeLogradouroEndereco` VARCHAR(100) NULL , `numeroEndereco` VARCHAR(45) NULL , `complementoEndereco` VARCHAR(45) NULL , `bairroEndereco` VARCHAR(100) NULL , `municipioEndereco` VARCHAR(100) NULL , `ufEndereco` VARCHAR(45) NULL , `paisEndereco` VARCHAR(45) NULL , `perimetroEndereco` VARCHAR(100) NULL , PRIMARY KEY (`idEndereco`) ) ENGINE = InnoDB COMMENT = 'Endereo das pessoas do sistema.'; -- ------------------------------------------------------ Table `CarreiraPolitica`.`Pessoa` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `CarreiraPolitica`.`Pessoa` ( `idPessoa` INT NOT NULL , `tipoPessoa` CHAR(1) NULL COMMENT 'F - Pessoa Fsica\nJ - Pessoa Jurdica\nC - Comunidade' , `nomePF` VARCHAR(100) NULL COMMENT 'Nome completo de uma Pessoa Fsica' , `dataNascimentoPF` DATE NULL COMMENT 'Data de Nascimento de uma Pessoa Fsica' , `cpfPF` VARCHAR(11) NULL COMMENT 'Nmero do CPF de uma Pessoa Fsica' , `rgPF` INT NULL COMMENT 'Nmero do RG (Identidade) de uma Pessoa Fsica\n' , `razaoSocialPJ` VARCHAR(100) NULL COMMENT 'Razo Social de uma Pessoa Jurdica' , `nomeFantasiaPJ` VARCHAR(100) NULL COMMENT 'Nome de Fantasia de uma Pessoa Jurdica' , `cnpjPJ` VARCHAR(45) NULL COMMENT 'Nmero do CNPJ de uma Pessoa Jurdica.' ,

`ramoPJ` VARCHAR(45) NULL COMMENT 'Ramo de atuao de uma Pessoa Jurdica' , `telefone1` VARCHAR(45) NULL , `nomeComunidade` VARCHAR(45) NULL COMMENT 'Quando esta for uma Comunidade e no possui CNPJ' , `telefone2` VARCHAR(45) NULL , `telefone3` VARCHAR(45) NULL , `Endereco_idEndereco` INT NOT NULL , PRIMARY KEY (`idPessoa`) , INDEX `fk_Pessoa_Endereco` (`Endereco_idEndereco` ASC) , CONSTRAINT `fk_Pessoa_Endereco` FOREIGN KEY (`Endereco_idEndereco` ) REFERENCES `CarreiraPolitica`.`Endereco` (`idEndereco` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = MyISAM COMMENT = 'Pessoas Fsicas e Jurdicas.'; -- ------------------------------------------------------ Table `CarreiraPolitica`.`Coligacao` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `CarreiraPolitica`.`Coligacao` ( `idColigacao` INT NOT NULL AUTO_INCREMENT , `nomeColigacao` VARCHAR(45) NULL , PRIMARY KEY (`idColigacao`) ) ENGINE = InnoDB; -- ------------------------------------------------------ Table `CarreiraPolitica`.`Partido` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `CarreiraPolitica`.`Partido` ( `idPartido` INT NOT NULL , `numeroPartido` INT UNSIGNED NOT NULL , `nomePartido` VARCHAR(100) NULL , `siglaPartido` VARCHAR(45) NOT NULL , PRIMARY KEY (`idPartido`) ) ENGINE = InnoDB; -- ------------------------------------------------------ Table `CarreiraPolitica`.`Campanha` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `CarreiraPolitica`.`Campanha` ( `idCampanha` INT NOT NULL AUTO_INCREMENT , `tituloCampanha` VARCHAR(45) NOT NULL , `numeroCandidato` INT NOT NULL COMMENT 'Nmero do Candidato na Campanha.' ,

`cargoCandidato` VARCHAR(45) NULL COMMENT 'Cargo pleiteado nas eleies.' , `anoEleicao` VARCHAR(4) NULL COMMENT 'Refere-se ao ano em que a eleio ocorrer.' , `Candidato_idPessoa` INT NOT NULL , `Coligacao_idColigacao` INT NOT NULL , `Partido_idPartido` INT NOT NULL , PRIMARY KEY (`idCampanha`) , INDEX `fk_Campanha_Pessoa1` (`Candidato_idPessoa` ASC) , INDEX `fk_Campanha_Coligacao1` (`Coligacao_idColigacao` ASC) , INDEX `fk_Campanha_Partido1` (`Partido_idPartido` ASC) , CONSTRAINT `fk_Campanha_Pessoa1` FOREIGN KEY (`Candidato_idPessoa` ) REFERENCES `CarreiraPolitica`.`Pessoa` (`idPessoa` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_Campanha_Coligacao1` FOREIGN KEY (`Coligacao_idColigacao` ) REFERENCES `CarreiraPolitica`.`Coligacao` (`idColigacao` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_Campanha_Partido1` FOREIGN KEY (`Partido_idPartido` ) REFERENCES `CarreiraPolitica`.`Partido` (`idPartido` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ------------------------------------------------------ Table `CarreiraPolitica`.`Assessor` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `CarreiraPolitica`.`Assessor` ( `idAssessor` INT NOT NULL AUTO_INCREMENT , `funcaoAssessor` VARCHAR(45) NULL , `Pessoa_idPessoa` INT NOT NULL , PRIMARY KEY (`idAssessor`) , INDEX `fk_Assessor_Pessoa1` (`Pessoa_idPessoa` ASC) , CONSTRAINT `fk_Assessor_Pessoa1` FOREIGN KEY (`Pessoa_idPessoa` ) REFERENCES `CarreiraPolitica`.`Pessoa` (`idPessoa` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ------------------------------------------------------ Table `CarreiraPolitica`.`Hospedagem` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `CarreiraPolitica`.`Hospedagem` (

`idHospedagem` INT NOT NULL , `entrada` DATETIME NULL COMMENT 'Data e Hora da entrada.' , `saida` DATETIME NULL , `Pessoa_idPessoa` INT NOT NULL , PRIMARY KEY (`idHospedagem`) , INDEX `fk_Hospedagem_Pessoa1` (`Pessoa_idPessoa` ASC) , CONSTRAINT `fk_Hospedagem_Pessoa1` FOREIGN KEY (`Pessoa_idPessoa` ) REFERENCES `CarreiraPolitica`.`Pessoa` (`idPessoa` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ------------------------------------------------------ Table `CarreiraPolitica`.`Atividade` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `CarreiraPolitica`.`Atividade` ( `idAtividade` INT NOT NULL AUTO_INCREMENT , `objetivoAtividade` VARCHAR(200) NULL COMMENT 'Descriao do objetivo da Atividade' , `inicioAtividade` DATETIME NULL COMMENT 'Data e hora do incio da atividade.' , `fimAtividade` DATETIME NULL COMMENT 'Data e hora do trmino da atividade' , `Hospedagem_idHospedagem` INT NOT NULL , `localAtividade_idPessoa` INT NOT NULL COMMENT 'Preencher quando o local possuir uma Pessoa relacionada.' , PRIMARY KEY (`idAtividade`) , INDEX `fk_Atividade_Hospedagem1` (`Hospedagem_idHospedagem` ASC) , INDEX `fk_Atividade_Pessoa1` (`localAtividade_idPessoa` ASC) , CONSTRAINT `fk_Atividade_Hospedagem1` FOREIGN KEY (`Hospedagem_idHospedagem` ) REFERENCES `CarreiraPolitica`.`Hospedagem` (`idHospedagem` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_Atividade_Pessoa1` FOREIGN KEY (`localAtividade_idPessoa` ) REFERENCES `CarreiraPolitica`.`Pessoa` (`idPessoa` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB COMMENT = 'Registra todas as atividades realizadas durante uma campanha.'; -- ------------------------------------------------------ Table `CarreiraPolitica`.`ContatoApoio` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `CarreiraPolitica`.`ContatoApoio` ( `idContatoApoio` INT NOT NULL , `Pessoa_idPessoa` INT NOT NULL COMMENT 'PF ou PJ do contato.' ,

`Organizao_idPessoa` INT NOT NULL COMMENT 'PF ou PJ da Organizao onde este contato est envolvido.' , `Campanha_idCampanha` INT NOT NULL COMMENT 'Preenchido quando um Contato no necessariamente participa de uma Atividade' , PRIMARY KEY (`idContatoApoio`) , INDEX `fk_ContatoApoio_Pessoa1` (`Pessoa_idPessoa` ASC) , INDEX `fk_ContatoApoio_Pessoa2` (`Organizao_idPessoa` ASC) , INDEX `fk_ContatoApoio_Campanha1` (`Campanha_idCampanha` ASC) , CONSTRAINT `fk_ContatoApoio_Pessoa1` FOREIGN KEY (`Pessoa_idPessoa` ) REFERENCES `CarreiraPolitica`.`Pessoa` (`idPessoa` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_ContatoApoio_Pessoa2` FOREIGN KEY (`Organizao_idPessoa` ) REFERENCES `CarreiraPolitica`.`Pessoa` (`idPessoa` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_ContatoApoio_Campanha1` FOREIGN KEY (`Campanha_idCampanha` ) REFERENCES `CarreiraPolitica`.`Campanha` (`idCampanha` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ------------------------------------------------------ Table `CarreiraPolitica`.`LancamentoFinanceiros` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `CarreiraPolitica`.`LancamentoFinanceiros` ( `idLancamentoFinanceiros` INT NOT NULL AUTO_INCREMENT , `descricaoLancamento` VARCHAR(100) NULL , `valorCredito` DECIMAL(10,0) NULL , `valorDebito` DECIMAL(10,0) NULL , `tipoValor` VARCHAR(45) NULL , `dataLancamento` VARCHAR(45) NULL , `cancelado` CHAR(1) NULL COMMENT 'N - Para lanamentos ativos (Default)\nS - Para lancamentos cancelados.' , `DestinoOrigemLancamento_idPessoa` INT NOT NULL COMMENT 'Destino Pessoa Fsica ou Jurdica beneficiado com o valor.\nOrigem - Pessoa Fsica ou Jurdica fornecedora do valor.' , `Campanha_idCampanha` INT NOT NULL , PRIMARY KEY (`idLancamentoFinanceiros`) , INDEX `fk_LancamentoFinanceiros_Pessoa1` (`DestinoOrigemLancamento_idPessoa` ASC) , INDEX `fk_LancamentoFinanceiros_Campanha1` (`Campanha_idCampanha` ASC) , CONSTRAINT `fk_LancamentoFinanceiros_Pessoa1` FOREIGN KEY (`DestinoOrigemLancamento_idPessoa` ) REFERENCES `CarreiraPolitica`.`Pessoa` (`idPessoa` )

ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_LancamentoFinanceiros_Campanha1` FOREIGN KEY (`Campanha_idCampanha` ) REFERENCES `CarreiraPolitica`.`Campanha` (`idCampanha` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ------------------------------------------------------ Table `CarreiraPolitica`.`MaterialProduzido` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `CarreiraPolitica`.`MaterialProduzido` ( `idMaterialProduzido` INT NOT NULL AUTO_INCREMENT , `tituloMaterial` VARCHAR(45) NULL , `tipoArquivo` CHAR(1) NULL COMMENT 'V - Vdeo\nT - Texto\nA - Audio\nI Imagem' , `resumoConteudo` VARCHAR(500) NULL , `localArquivo` VARCHAR(45) NULL COMMENT 'Endereo onde est localizado o arquivo no servidor.' , `Autor_idPessoa` INT NOT NULL , PRIMARY KEY (`idMaterialProduzido`) , INDEX `fk_MaterialProduzido_Pessoa1` (`Autor_idPessoa` ASC) , CONSTRAINT `fk_MaterialProduzido_Pessoa1` FOREIGN KEY (`Autor_idPessoa` ) REFERENCES `CarreiraPolitica`.`Pessoa` (`idPessoa` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ------------------------------------------------------ Table `CarreiraPolitica`.`Atividade_ContatoApoio` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `CarreiraPolitica`.`Atividade_ContatoApoio` ( `idAtividade_ContatoApoio` INT NOT NULL , `ContatoApoio_idContatoApoio` INT NOT NULL , `Atividade_idAtividade` INT NOT NULL , PRIMARY KEY (`idAtividade_ContatoApoio`) , INDEX `fk_Atividade_ContatoApoio_ContatoApoio1` (`ContatoApoio_idContatoApoio` ASC) , INDEX `fk_Atividade_ContatoApoio_Atividade1` (`Atividade_idAtividade` ASC) , CONSTRAINT `fk_Atividade_ContatoApoio_ContatoApoio1` FOREIGN KEY (`ContatoApoio_idContatoApoio` ) REFERENCES `CarreiraPolitica`.`ContatoApoio` (`idContatoApoio` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_Atividade_ContatoApoio_Atividade1` FOREIGN KEY (`Atividade_idAtividade` )

REFERENCES `CarreiraPolitica`.`Atividade` (`idAtividade` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB COMMENT = 'Contatos envolvidos em uma atividade'; -- ------------------------------------------------------ Table `CarreiraPolitica`.`Atividade_MaterialProduzido` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `CarreiraPolitica`.`Atividade_MaterialProduzido` ( `idAtividade_MaterialProduzido` INT NOT NULL , `Atividade_idAtividade` INT NOT NULL , `MaterialProduzido_idMaterialProduzido` INT NOT NULL , PRIMARY KEY (`idAtividade_MaterialProduzido`) , INDEX `fk_Atividade_MaterialProduzido_Atividade1` (`Atividade_idAtividade` ASC) , INDEX `fk_Atividade_MaterialProduzido_MaterialProduzido1` (`MaterialProduzido_idMaterialProduzido` ASC) , CONSTRAINT `fk_Atividade_MaterialProduzido_Atividade1` FOREIGN KEY (`Atividade_idAtividade` ) REFERENCES `CarreiraPolitica`.`Atividade` (`idAtividade` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_Atividade_MaterialProduzido_MaterialProduzido1` FOREIGN KEY (`MaterialProduzido_idMaterialProduzido` ) REFERENCES `CarreiraPolitica`.`MaterialProduzido` (`idMaterialProduzido` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ------------------------------------------------------ Table `CarreiraPolitica`.`Partido_Coligaao` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `CarreiraPolitica`.`Partido_Coligaao` ( `idPartido_Coligaao` INT NOT NULL , `Coligacao_idColigacao` INT NOT NULL , `Partido_idPartido` INT NOT NULL , PRIMARY KEY (`idPartido_Coligaao`) , INDEX `fk_Partido_Coligaao_Coligacao1` (`Coligacao_idColigacao` ASC) , INDEX `fk_Partido_Coligaao_Partido1` (`Partido_idPartido` ASC) , CONSTRAINT `fk_Partido_Coligaao_Coligacao1` FOREIGN KEY (`Coligacao_idColigacao` ) REFERENCES `CarreiraPolitica`.`Coligacao` (`idColigacao` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_Partido_Coligaao_Partido1` FOREIGN KEY (`Partido_idPartido` ) REFERENCES `CarreiraPolitica`.`Partido` (`idPartido` )

ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ------------------------------------------------------ Table `CarreiraPolitica`.`Assessor_Atividade` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `CarreiraPolitica`.`Assessor_Atividade` ( `idAssessor_Atividade` INT NOT NULL , `Assessor_idAssessor` INT NOT NULL , `Atividade_idAtividade` INT NOT NULL , PRIMARY KEY (`idAssessor_Atividade`) , INDEX `fk_Assessor_Atividade_Assessor1` (`Assessor_idAssessor` ASC) , INDEX `fk_Assessor_Atividade_Atividade1` (`Atividade_idAtividade` ASC) , CONSTRAINT `fk_Assessor_Atividade_Assessor1` FOREIGN KEY (`Assessor_idAssessor` ) REFERENCES `CarreiraPolitica`.`Assessor` (`idAssessor` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_Assessor_Atividade_Atividade1` FOREIGN KEY (`Atividade_idAtividade` ) REFERENCES `CarreiraPolitica`.`Atividade` (`idAtividade` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ------------------------------------------------------ Table `CarreiraPolitica`.`Usuario` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `CarreiraPolitica`.`Usuario` ( `idUsuario` INT NOT NULL , `login` VARCHAR(45) NULL COMMENT 'Login do usurio.' , `senha` VARCHAR(100) NULL COMMENT 'Senha do usurio' , `nome` VARCHAR(85) NULL COMMENT 'Primeiro nome do Usurio.' , `sobrenome` VARCHAR(85) NULL COMMENT 'Sobrenome do usurio.' , PRIMARY KEY (`idUsuario`) ) ENGINE = InnoDB; -- ------------------------------------------------------ Table `CarreiraPolitica`.`Log` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `CarreiraPolitica`.`Log` ( `idLog` INT NOT NULL , `acao` VARCHAR(85) NULL COMMENT 'Ao realizada pelo usurio.' , `data` DATETIME NULL COMMENT 'Data e hora da ao realizada pelo usurio.' , `Usuario_idUsuario` INT NOT NULL , PRIMARY KEY (`idLog`) ,

INDEX `fk_Log_Usuario1` (`Usuario_idUsuario` ASC) , CONSTRAINT `fk_Log_Usuario1` FOREIGN KEY (`Usuario_idUsuario` ) REFERENCES `CarreiraPolitica`.`Usuario` (`idUsuario` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB;

SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Potrebbero piacerti anche