Skip to main content

Script do banco para PostGresSQL

 

Script

CREATE TABLE IF NOT EXISTS Servidor (
  idServidor SERIAL PRIMARY KEY,
  Nome TEXT NOT NULL,
  email TEXT NOT NULL,
  tipo TEXT NOT NULL,
  refresh_token TEXT NOT NULL,
  acess_token TEXT NOT NULL
);

CREATE TABLE IF NOT EXISTS Formulario (
  idFormulario SERIAL PRIMARY KEY,
  nome TEXT NOT NULL UNIQUE,
  descricao TEXT NOT NULL
);

CREATE TABLE IF NOT EXISTS preso (
  cpf TEXT PRIMARY KEY,
  Nome TEXT NOT NULL,
  data_nascimento TEXT NOT NULL,
  telefone TEXT NOT NULL,
  endereco TEXT NOT NULL,
  genero TEXT NOT NULL,
  sexo TEXT NOT NULL,
  estado_civil TEXT NOT NULL,
  cor_pele TEXT NOT NULL,
  escolaridade TEXT NOT NULL,
  sabe_ler BOOLEAN NOT NULL,
  pessoa_deficiencia TEXT NOT NULL
);

CREATE TABLE IF NOT EXISTS Processo (
  idProcesso SERIAL PRIMARY KEY,
  numero TEXT,
  preso_cpf TEXT NOT NULL,
  CONSTRAINT fk_Processo_preso FOREIGN KEY (preso_cpf)
    REFERENCES preso (cpf)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION
);

CREATE TABLE IF NOT EXISTS Condicao_Social (
  idCondicao_Social SERIAL PRIMARY KEY,
  vulnerabilidade TEXT NOT NULL,
  trabalho_carteira TEXT NOT NULL,
  renda_mensal TEXT NOT NULL,
  quantidade_filhos TEXT NOT NULL,
  filhos_menores TEXT NOT NULL,
  filhos_deficiencia TEXT NOT NULL,
  unico_provedor TEXT NOT NULL,
  preso_cpf TEXT NOT NULL,
  CONSTRAINT fk_Condicao_Social_preso FOREIGN KEY (preso_cpf)
    REFERENCES preso (cpf)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION
);

CREATE TABLE IF NOT EXISTS preso__Formulario (
  id TEXT NOT NULL,
  Formulario_idFormulario INT NOT NULL,
  preso_cpf TEXT NOT NULL,
  data_preenchimento TEXT NOT NULL,
  Servidor_idServidor INT NOT NULL,
  desc_status TEXT NOT NULL,
  PRIMARY KEY (id, Formulario_idFormulario, preso_cpf),
  CONSTRAINT fk_preso_has_Formulario FOREIGN KEY (Formulario_idFormulario)
    REFERENCES Formulario (idFormulario)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT fk_preso_Formulario FOREIGN KEY (preso_cpf)
    REFERENCES preso (cpf)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT fk_preso_Servidor FOREIGN KEY (Servidor_idServidor)
    REFERENCES Servidor (idServidor)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION
);

CREATE TABLE IF NOT EXISTS Flagrante (
  idFlagrante SERIAL PRIMARY KEY,
  preso__Formulario_id TEXT NOT NULL,
  preso__Formulario_Formulario_idFormulario INT NOT NULL,
  preso__Formulario_preso_cpf TEXT NOT NULL,
  data_entrevista TEXT NOT NULL,
  local_prisao TEXT NOT NULL,
  fianca TEXT NOT NULL,
  valor_fianca TEXT NOT NULL,
  primario_reincidente TEXT NOT NULL,
  agressao_policial TEXT NOT NULL,
  deseja_apuracao TEXT NOT NULL,
  recebeu_alimentacao BOOLEAN NOT NULL,
  descricao_agressao TEXT NOT NULL,
  consideracoes TEXT NOT NULL,
  sala_audiencia TEXT NOT NULL,
  resultado_audiencia TEXT NOT NULL,
  encaminhamento_psicossocial TEXT NOT NULL,
  pagou_fianca BOOLEAN NOT NULL,
  valor_pago TEXT NOT NULL,
  CONSTRAINT fk_Flagrante_preso FOREIGN KEY (preso__Formulario_id, preso__Formulario_Formulario_idFormulario, preso__Formulario_preso_cpf)
    REFERENCES preso__Formulario (id, Formulario_idFormulario, preso_cpf)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION
);

CREATE TABLE IF NOT EXISTS Pensao_Alimenticia (
  idPensao_Alimenticia SERIAL PRIMARY KEY,
  preso__Formulario_id TEXT NOT NULL,
  preso__Formulario_Formulario_idFormulario INT NOT NULL,
  preso__Formulario_preso_cpf TEXT NOT NULL,
  data_entrevista TEXT NOT NULL,
  local_processo TEXT NOT NULL,
  data_preso TEXT NOT NULL,
  tempo_decisao TEXT NOT NULL,
  tempo_prisao TEXT NOT NULL,
  valor_divida TEXT NOT NULL,
  classificado TEXT NOT NULL,
  primeira_impressao TEXT NOT NULL,
  vezes_preso TEXT NOT NULL,
  possibilidade_acordo TEXT NOT NULL,
  representacao_processual TEXT NOT NULL,
  cela TEXT NOT NULL,
  conduta_policial TEXT NOT NULL,
  problema_alimentacao TEXT NOT NULL,
  problema_higiene TEXT NOT NULL,
  problema_atendimento_medico TEXT NOT NULL,
  CONSTRAINT fk_Pensao_Alimenticia_preso FOREIGN KEY (preso__Formulario_id, preso__Formulario_Formulario_idFormulario, preso__Formulario_preso_cpf)
    REFERENCES preso__Formulario (id, Formulario_idFormulario, preso_cpf)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION
);

CREATE TABLE IF NOT EXISTS Presidio (
  idPresidio SERIAL PRIMARY KEY,
  unidade_prisional TEXT NOT NULL,
  meses_preso TEXT NOT NULL,
  primario_reincidente INT NOT NULL,
  quantidade_presos INT NOT NULL,
  estuda BOOLEAN NOT NULL,
  acesso_livros BOOLEAN NOT NULL,
  trabalha TEXT NOT NULL,
  contato_mundo_externo TEXT NOT NULL,
  assistencia_religiosa TEXT NOT NULL,
  violencia_policial TEXT NOT NULL,
  tipo_violencia TEXT NOT NULL,
  banho_sol_semana TEXT NOT NULL,
  banho_sol_fim_semana TEXT NOT NULL,
  recebe_visita TEXT NOT NULL,
  especificacao_visita TEXT NOT NULL,
  problema_visita TEXT NOT NULL,
  problema_higiene TEXT NOT NULL,
  problema_alimentacao TEXT NOT NULL,
  problema_agua TEXT NOT NULL,
  problema_medico TEXT NOT NULL,
  preso__Formulario_id TEXT NOT NULL,
  preso__Formulario_Formulario_idFormulario INT NOT NULL,
  preso__Formulario_preso_cpf TEXT NOT NULL,
  CONSTRAINT fk_Presidio_preso FOREIGN KEY (preso__Formulario_id, preso__Formulario_Formulario_idFormulario, preso__Formulario_preso_cpf)
    REFERENCES preso__Formulario (id, Formulario_idFormulario, preso_cpf)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION
);

CREATE TABLE IF NOT EXISTS endereco (
  cep INT PRIMARY KEY,
  Estado TEXT,
  cidade TEXT,
  bairro TEXT,
  numero TEXT,
  preso_cpf TEXT NOT NULL,
  CONSTRAINT fk_endereco_preso FOREIGN KEY (preso_cpf)
    REFERENCES preso (cpf)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION
);