Creación de tabla relacional con llaves foráneas en MySQL
Clase 12 de 24 • Curso de Fundamentos de Bases de Datos
Resumen
Crear correctamente las tablas y gestionar sus relaciones en MySQL es clave para mantener la integridad y eficiencia de la base de datos. Partiendo de las tablas ya creadas (clients, products y builds), exploraremos cómo establecer conexiones significativas utilizando llaves foráneas (foreign keys) y gestionarlas tanto con relaciones "duras" (a nivel base de datos) como "suaves" (en lógica de aplicación).
¿Cómo crear correctamente una tabla nueva relacionada con otras tablas?
Para conectar información entre tablas, crearemos una tabla llamada bill products
, que almacenará productos específicos relacionados con una factura (bill
). Es esencial que los nombres de tablas sean coherentes y claros para cualquier colaborador.
Ejemplo de creación de tabla:
CREATE TABLE IF NOT EXISTS bill_products (
bill_product_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
bill_id INT UNSIGNED NOT NULL,
product_id INT UNSIGNED NOT NULL,
quantity INT NOT NULL DEFAULT 1,
created_at DATETIME,
updated_at DATETIME
);
¿Cuándo y cómo usar llaves foráneas tipo "cascade"?
Las llaves foráneas con ON DELETE CASCADE
aseguran que, al eliminar un registro en la tabla padre, todos los registros relacionados se eliminen automáticamente. Es una función potente, pero conlleva riesgos si no se maneja con precaución.
Ejemplo específico:
FOREIGN KEY (bill_id) REFERENCES bills(id) ON UPDATE CASCADE ON DELETE CASCADE,
FOREIGN KEY (product_id) REFERENCES products(product_id) ON UPDATE CASCADE ON DELETE CASCADE
Este método facilita mantener la integridad de datos, pero puede causar pérdidas no deseadas si se elimina información inadvertidamente.
¿Qué ventajas tiene usar relaciones "suaves" sobre relaciones "duras"?
Las relaciones "suaves" permiten mayor flexibilidad ya que la lógica de validación está en la aplicación, no en la base de datos directamente.
Sus ventajas principales son:
- Mayor flexibilidad para gestionar cambios.
- Menor rigidez en la estructura.
- Facilita cambios rápidos sin modificar constantemente la estructura en la base.
Aunque presenta riesgos como insertar datos huérfanos, bien manejado puede ayudar en entornos de desarrollo ágil o proyectos en crecimiento.
Este panorama práctico sobre creación de tablas, relaciones y llaves foráneas busca informarte sobre opciones clave según las necesidades específicas de tu proyecto. ¿Prefieres utilizar relaciones "suaves" enfocadas en lógica de aplicación o eres partidario de relaciones "duras" en la base de datos? Déjanos tu opinión en los comentarios.