DEV Community 👩‍💻👨‍💻

Normalização do Tipo de Identificação

Nas bases de dados é comum usarmos o BI(para Angola) ou RG/CPF (para o Brasil) como o principal atributo único , contando apenas com as pessoas nativas.

Normalmente é o campo mais usado para consultas nos Sistemas de Informação, pelo facto de ser único para cada pessoa.

Devemos levar em conta que uma pessoa também pode ser identificado pelo Passaporte, Cartão de Residente, Bilhete de Identidade Estrangeiro, Bilhete Militar e outros.

Problemas com essa abordagem

  • Para cada pessoa estrageira, teriamos que adicionar um atributo para o tipo de identificação. Caso alguém não tenha o documento, o campo será nulo;
  • Na medida que o sistema cresce, será mais difícil modificar todas as funcionalidades que dependem do Bilhete de Identidade.
  • Caso entra um pessoa estrageira, teremos que modificar cada consulta no Sistema.

Sugestão para a solução

Uma das soluções é criar uma tabela para os tipos de identificação e na tabela de pessoas referenciamos o tipo, seguido do atributo que representa o número de identificação.
Caso surjam mais documentos de identificação, não vão impedir o crescimento do sistema, porque para cada consulta será usado o número de identificação, independentemente do tipo.

Obs: Na implementação do Sistema, podemos validar cada entrada, criando uma expressão regular para cada tipo de documento de identificação.

Exemplo: Sistema de Inscrições para a Universidade XPTO. Os candidatos podem ser nativos ou estrangeiros.
Neste exemplo, vamos nos focar num trecho da base de dados, usando os 3 modelos(conceitual, lógico e físico).

Modelo Conceitual
Image description

Modelo Lógico
Image description

Código SQL
Image description

Queries no Banco
Image description

Oldest comments (0)

Take a look at this:

Settings

Go to your customization settings to nudge your home feed to show content more relevant to your developer experience level. 🛠