Buenas prácticas de nombramiento en JavaScript y bases de datos
Clase 30 de 36 • Curso de NestJS: Persistencia de Datos con TypeORM
Resumen
¿Cómo mantener las buenas prácticas en el nombramiento de bases de datos y código?
El correcto nombramiento de las variables y tablas es fundamental para mantener la coherencia, comprensión y eficacia en la programación y administración de bases de datos. Muchas veces subestimado, el naming es clave para el trabajo colaborativo y la futura escalabilidad del sistema.
¿Cuál es la diferencia entre el naming en JavaScript y bases de datos?
- JavaScript: Las variables en JavaScript suelen nombrarse mediante la convención CamelCase, donde cada nueva palabra inicia con mayúscula (por ejemplo,
ProductId
). - Bases de datos: Aquí las buenas prácticas dictan que no se usen caracteres especiales, incluyendo mayúsculas, para evitar problemas de compatibilidad y facilitar el trabajo en equipo. Un ejemplo sería usar
created_at
en lugar deCreatedAt
.
¿Cómo podemos garantizar buenas prácticas en bases de datos?
- Nombres en minúsculas con guiones bajos: Usar una convención consistente como el uso de underscores (
_
) para separar palabras en nombres de columnas y tablas comoproduct_id
. - Tablas en plural: Es común nombrar tablas en plural, como
Products
, en vez deProduct
, para expresar que contienen múltiples registros de dicha entidad. - Evitar caracteres especiales: Mantener nombres simples y claros para facilitar futuras consultas y mantenimiento.
¿Cómo personalizar las relaciones de tablas usando TimeWareM?
TimeWareM nos permite personalizar el nombramiento de tablas y columnas mediante el uso de decoradores en entidades de TypeScript:
@Entity('Products')
export class Product {
@PrimaryGeneratedColumn()
product_id: number;
@Column({ name: 'created_at' })
createdAt: Date;
}
- Relaciones uno a uno: Utilizar
@JoinColumn
para especificar el nombre de la clave foránea, comocustomer_id
. - Relaciones uno a muchos: Se puede añadir el decorador
@JoinColumn
para establecer claramente el nombre de la columna que lleva la relación. - Relaciones muchos a muchos: Nos permite también determinar el nombre de las tablas ternarias generadas automáticamente, utilizando
@JoinTable
y especificando nombres para las columnas con@JoinColumn
e@InverseJoinColumn
.
¿Cuáles son los cuidados a tener al modificar el naming en bases de datos productivas?
- Planificación desde el diseño: Pensar en los nombres y normas a usar desde el diseño inicial del sistema evita problemas y migraciones complicadas más adelante.
- Migraciones cuidadosas: Cambiar el nombre de tablas o columnas en un ambiente productivo puede conllevar riesgos de pérdida de datos. Es vital coordinar con el equipo de base de datos y aplicar las migraciones con scripts SQL de ser necesario.
¿Qué hacer si la base de datos ya está en producción?
- Evaluar riesgos: La modificación del naming en producción requiere un análisis detallado sobre el impacto, especialmente en la integridad de datos y el funcionamiento del sistema.
- Consultar con expertos: Es crucial contar con un especialista en bases de datos para determinar la mejor estrategia y reducir riesgos durante las migraciones.
Este tema no solo trata de normas estéticas, sino que impacta en la eficacia, escalabilidad y sostenibilidad del proyecto. Por lo tanto, es vital adoptarlas desde el inicio para facilitar la comunicación entre equipos y evitar futuros errores. Sigue aprendiendo y mejorando tus prácticas para desarrollar sistemas robustos y bien organizados.