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
UNIQUEeCHECKgarantem 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.