Convenciones de nombres en bases de datos: Tablas, columnas y claves

6 min de lectura

Una nomenclatura consistente en las bases de datos evita confusiones, simplifica las consultas y hace más seguras las migraciones de esquema.

El estándar: snake_case

La convención abrumadora en las bases de datos SQL es snake_case para todo: nombres de tablas, nombres de columnas, índices y restricciones.

CREATE TABLE user_accounts (
  user_id SERIAL PRIMARY KEY,
  first_name VARCHAR(100),
  last_name VARCHAR(100),
  created_at TIMESTAMP DEFAULT NOW()
);

Nombres de tabla: ¿singular o plural?

EstiloEjemploUsado por
Singularuser, orderLaravel, Django
Pluralusers, ordersRails, muchos equipos

Elige uno y sé consistente. Ambos son válidos.

Reglas de nombres de columnas

  • Clave primaria: id o table_name_id
  • Clave foránea: referenced_table_id (p. ej., user_id)
  • Marcas de tiempo: created_at, updated_at, deleted_at
  • Booleanos: is_active, has_verified
  • Evita palabras reservadas: no nombres columnas order, user, group

Nombres de índices y restricciones

idx_users_email        -- índice
uq_users_email         -- restricción única
fk_orders_user_id      -- clave foránea
chk_orders_total       -- restricción de comprobación

Convertir a snake_case

Usa el conversor snake_case o el hub de conversión de mayúsculas y minúsculas.