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?

EstiloExemploUsado por
Singularuser, orderLaravel, Django
Pluralusers, ordersRails, muitas equipes

Escolha um e seja consistente. Ambos são válidos.

Regras de nomes de colunas

  • Chave primária: id ou table_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.