Convenções de nomes em bancos de dados: Tabelas, colunas e chaves
6 min de leitura
Uma nomenclatura consistente nos bancos de dados evita confusão, simplifica as consultas e torna as migrações de esquema mais seguras.
O padrão: snake_case
A convenção esmagadora nos bancos de dados SQL é snake_case para tudo: nomes de tabelas, nomes de colunas, índices e restrições.
CREATE TABLE user_accounts (
user_id SERIAL PRIMARY KEY,
first_name VARCHAR(100),
last_name VARCHAR(100),
created_at TIMESTAMP DEFAULT NOW()
);
Nomes de tabela: singular ou plural?
| Estilo | Exemplo | Usado por |
|---|---|---|
| Singular | user, order | Laravel, Django |
| Plural | users, orders | Rails, muitas equipes |
Escolha um e seja consistente. Ambos são válidos.
Regras de nomes de colunas
- Chave primária:
idoutable_name_id - Chave estrangeira:
referenced_table_id(ex.:user_id) - Carimbos de data/hora:
created_at,updated_at,deleted_at - Booleanos:
is_active,has_verified - Evite palavras reservadas: não nomeie colunas como
order,user,group
Nomes de índices e restrições
idx_users_email -- índice
uq_users_email -- restrição única
fk_orders_user_id -- chave estrangeira
chk_orders_total -- restrição de verificação
Converter para snake_case
Use o conversor snake_case ou o hub de conversão de maiúsculas e minúsculas.