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?
| Estilo | Ejemplo | Usado por |
|---|---|---|
| Singular | user, order | Laravel, Django |
| Plural | users, orders | Rails, muchos equipos |
Elige uno y sé consistente. Ambos son válidos.
Reglas de nombres de columnas
- Clave primaria:
idotable_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.