Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • F Ficai-4.0 Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1
    • Merge requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • FICAI 4.0
  • Ficai-4.0 Wiki
  • Wiki
  • banco_dados

Last edited by Felipe Roque Tasoniero Nov 18, 2022
Page history

banco_dados

Home

Escopo

Arquitetura

Código

Configuração

Design/Mockups

BD

Instalação

Gerência

Qualidade

Processo

Retro

Utilização

Estudos dirigidos

# Banco de Dados

Descrição

A modelagem, documentação e organização do banco de dados se situará nessa seção.

Sumário

  • Modelagem
    • Esquema Conceitual
    • Esquema Lógico
  • Implementação
    • Knex
    • Schemas
    • Postgrees

Modelagem

Esquema Conceitual

modeloconceitual

Esquema Lógico

modelo_

Implementação

TBD

Schemas

Aluno

@Entity
@Table(name = "tb_aluno")
public class Aluno implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private UUID id;

    @Column(nullable = true, name = "cpf", length = 11)
    private String cpf;

    @Column(nullable = false, name = "nome", length = 80)
    private String nome;

    @Column(nullable = false, name = "responsavel_primario", length = 80)
    private String responsavelPrimario;

    @Column(name = "responsavel_secundario", length = 80)
    private String responsavelSecundario;

    @Column(name = "responsavel_opcional", length = 80)
    private String responsavelOpcional;

    @Column(nullable = false, name = "beneficiario_renda")
    private Boolean beneficiarioRenda;

    @Column(nullable = false, name = "beneficiario_bpc")
    private Boolean beneficiarioBpc;

    @Column(nullable = false, name = "data_nascimento")
    private LocalDate dataNascimento;

    @OneToMany(mappedBy = "aluno", fetch = FetchType.LAZY, cascade = { CascadeType.ALL })
    private List<Telefone> telefones = new ArrayList<>();

    @OneToMany(mappedBy = "aluno", fetch = FetchType.LAZY, cascade = { CascadeType.ALL })
    private List<Endereco> enderecos = new ArrayList<>();

    @OneToMany(mappedBy = "aluno", fetch = FetchType.LAZY, cascade = { CascadeType.ALL })
    private List<Ficha> fichas = new ArrayList<>();
}

Cidade

@Entity
@Table(name = "tb_cidade")
public class Cidade implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private UUID id;

    @Column(nullable = false, name = "codigo_ibge", length = 7)
    private String codigoIbge;

    @Column(nullable = false, name = "nome", length = 30)
    private String nome;

    @Column(nullable = false, name = "uf_sigla", length = 2)
    private String ufSigla;

    @OneToMany(mappedBy = "cidade", fetch = FetchType.LAZY, cascade = { CascadeType.ALL })
    @JsonIgnore
    private List<Endereco> endereco = new ArrayList<>();
}

Endereco

@Entity
@Table(name = "tb_endereco")
public class Endereco implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private UUID id;

    @Column(nullable = false, name = "data_cadastro")
    @CreationTimestamp
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy")
    private LocalDate dataCadastro;

    @Column(nullable = false, name = "cep", length = 9)
    private String cep;

    @Column(nullable = false, name = "logradouro", length = 80)
    private String logradouro;

    @Column(nullable = false, name = "numero", length = 9)
    private String numero;

    @Column(nullable = false, name = "bairro", length = 50)
    private String bairro;

    @Column(name = "complemento", length = 50)
    private String complemento;

    @Column(name = "pontoReferencia", length = 500)
    private String pontoReferencia;

    @ManyToOne(fetch = FetchType.LAZY, cascade = { CascadeType.ALL })
    @JoinColumn(name = "aluno_id")
    @JsonIgnore
    private Aluno aluno;

    @ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.ALL })
    @JoinColumn(name = "cidade_id")
    private Cidade cidade;
}

Escola

@Entity
@Table(name = "tb_escola")
public class Escola implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private UUID id;

    @Column(nullable = false, name = "escola_inep", length = 8)
    private String escolaInep;

    @Column(nullable = false, name = "nome", length = 50)
    private String nome;

    @Column(nullable = false, name = "cep", length = 9)
    private String cep;

    @Column(nullable = false, name = "logradouro", length = 80)
    private String logradouro;

    @Column(nullable = false, name = "numero", length = 9)
    private String numero;

    @Column(nullable = true, name = "complemento", length = 50)
    private String complemento;

    @Column(nullable = false, name = "bairro", length = 50)
    private String bairro;

    @Column(nullable = false, name = "cidade", length = 50)
    private String cidade;

    @Column(nullable = false, name = "estado", length = 2)
    private String estado;
}

Ficha

@Entity
@Table(name = "tb_ficha")
public class Ficha implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private UUID id;

    @OneToOne(cascade=CascadeType.ALL)
    private IdPublico idPublico = new IdPublico();

    @Column(nullable = false, name = "situacao_Aluno")
    private Integer situacaoAluno;

    @Column(nullable = false, name = "status")
    private Integer status;

    @Column(nullable = false, name = "motivo_complemento")
    private String motivoComplemento;

    @Column(nullable = true, name = "responsavel")
    private Integer responsavel;

    @Column(nullable = false, name = "data_cadastro")
    @UpdateTimestamp
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy")
    private LocalDate dataCadastro;

    @ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.ALL })
    @JoinColumn(name = "aluno_id")
    private Aluno aluno;

    @Column(nullable = true, name = "id_escola")
    private UUID idEscola;

    @Column(nullable = true, name = "id_motivo_infrequencia")
    private Long idMotivoInfrequencia;

    @OneToMany(mappedBy = "ficha", fetch = FetchType.LAZY, cascade = { CascadeType.ALL })
    private List<Visita> visitas = new ArrayList<>();

    @OneToMany(mappedBy = "ficha", fetch = FetchType.LAZY, cascade = { CascadeType.ALL })
    private List<HistoricoFicha> historicoFichas = new ArrayList<>();
}

HistoricoFicha

@Entity
@Table(name = "tb_historico_ficha")
public class HistoricoFicha implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private UUID id;

    @Column(nullable = false, name = "data_cadastro")
    @UpdateTimestamp
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy")
    private LocalDate dataCadastro;

    @Column(nullable = false, name = "status", length = 80)
    private Integer status;

    @Column(nullable = false, name = "responsavel", length = 80)
    private Integer responsavel;

    @ManyToOne(fetch = FetchType.LAZY, cascade = { CascadeType.ALL })
    @JoinColumn(name = "ficha_id")
    private Ficha ficha;
}

IdPublico

@Entity
public class IdPublico implements Serializable {
    @Id
    @SequenceGenerator(name="ficha_id_publico_seq",
            sequenceName="ficha_id_publico",
            initialValue = 1000)
    @GeneratedValue(strategy = GenerationType.IDENTITY, generator = "ficha_id_publico_seq")
    private Long idPublico;
}

MotivoInfrequencia

@Entity
@Table(name = "tb_motivo_infrequencia")
public class MotivoInfrequencia implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    @Column(name = "id")
    private Long id;

    @Column(nullable = false, name = "tipo", length = 150)
    private String tipo;

    @Column(nullable = false, name = "subtipo", length = 150)
    private String subTipo;

    @Column(nullable = false, name = "recorrencias_para_envio")
    private Integer recorrenciasParaEnvio;
}

Telefone

@Entity
@Table(name = "tb_telefone")
public class Telefone implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private UUID id;

    @Column(nullable = false, name = "ddd", length = 3)
    private String ddd;

    @Column(nullable = false, name = "numero", length = 9)
    private String numero;

    @Column(nullable = false, name = "responsavel", length = 80)
    private String responsavel;

    @Column(nullable = false, name = "data_cadastro")
    @CreationTimestamp
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy")
    private LocalDate dataCadastro;

    @ManyToOne(fetch = FetchType.LAZY, cascade = { CascadeType.ALL })
    @JoinColumn(name = "aluno_id")
    @JsonIgnore
    private Aluno aluno;
}

Visita

@Entity
@Table(name = "tb_visita")
public class Visita implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private UUID id;

    @Column(nullable = false, name = "descricao", length = 500)
    private String descricao;

    @Column(nullable = false, name = "responsavel_visita", length = 80)
    private String responsavelVisita;

    @Column(nullable = false, name = "teve_sucesso")
    private Boolean teveSucesso;

    @ManyToOne(fetch = FetchType.LAZY, cascade = { CascadeType.ALL })
    @JoinColumn(name = "ficha_id")
    @JsonBackReference
    private Ficha ficha;

    @Column(nullable = false, name = "data_visita")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy")
    private LocalDate dataVisita;
}

Postgrees

Postgres-Schema

Clone repository
  • Gerência
  • Instalação
  • Retro
  • Utilizando a wiki
    • adicionando imagens
    • escrevendo em markdown
    • wiki no editor de texto
  • arquitetura
  • banco_dados
  • codigo
  • configuracao
  • design_mockups
  • escopo
  • estudos
  • gerencia
  • Home
View All Pages