Melhores Práticas de Design de Schema
Deixe o banco de dados impor invariantes das quais seu negócio depende.
Como Usar Esta Lista
- Revise diagramas ER contra a lista de verificação de restrições.
- Bloqueie migrações que não possuem FK ou CHECK quando necessário.
A - Integridade
- Declare relacionamentos FOREIGN KEY. Documente ON DELETE.
- Indexe colunas de chave estrangeira. Desempenho de JOIN e cascade.
- Use CHECK para regras de linha. Não apenas validação de aplicativo.
B - Chaves
- Escolha surrogate ou natural deliberadamente. Documente em ADR.
- Evite PKs compostas em tabelas "quentes" amplas. A menos que sejam dados de referência.
- Use IDENTITY para novas colunas de id. Prefira sobre serial.
C - Evolução
- DDL em migrações versionadas. Sem hotfix manual em produção.
- Teste o caminho de rollback ou de correção futura. DDL pode não fazer rollback de todos os objetos.
- Comente colunas não óbvias. O catálogo é um documento de onboarding.
FAQs
Restrições são lentas?
Pequeno custo de verificação; enorme ganho de integridade.
Relacionados
- Chaves Primárias e Estrangeiras - Padrões de FK
- Noções Básicas de Migrações - envio de DDL
Versões da Stack: Esta página foi escrita para PostgreSQL 18.4 (estável 18, manutenção 17), pgvector 0.8+, PgBouncer 1.x, Patroni 3.x e PostGIS 3.5+.