DevGuideTK
← Trilha Backend

Modelagem e normalização

Tabelas, chaves e formas normais, e quando desnormalizar de propósito.

Modelagem relacional é decidir quais tabelas existem, quais colunas cada uma tem e como elas se ligam por chaves. Normalizar é guardar cada fato num lugar só.

O modelo dura mais que o código: mudar uma tabela com milhões de linhas é caro. E um modelo frouxo deixa entrar dados que a aplicação depois não sabe tratar.

  • Cada tabela representa uma coisa, e cada fato fica num lugar só.
  • Chaves estrangeiras, restrições UNIQUE e CHECK garantem as regras no banco.
  • Verificar na aplicação antes de gravar não impede duplicatas simultâneas.
  • Dinheiro em numeric, datas com fuso e índices nas chaves estrangeiras.
  • Desnormalizar é uma decisão consciente, como guardar o preço na hora da compra.