Creación de tablas MySQL realistas con campos únicos y timestamps

Clase 16 de 24Curso de Fundamentos de Bases de Datos

Resumen

El manejo efectivo y realista de bases de datos en MySQL incrementa la eficiencia operativa y optimiza la interacción con aplicaciones. Aquí te explicaremos cómo crear una tabla robusta y próxima a la realidad implementando técnicas avanzadas como índices únicos y automatización del registro de tiempo.

¿Cómo estructurar una tabla realista en MySQL?

Crear una tabla funcional y realista requiere datos específicos que permitan una gestión precisa. En este caso, se utilizó una instrucción CREATE TABLE para la tabla products. Aquí está la estructura propuesta:

CREATE TABLE IF NOT EXISTS products (
  productID INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  SKU VARCHAR(20) NOT NULL UNIQUE,
  Name VARCHAR(50) NOT NULL,
  slug VARCHAR(50) NOT NULL UNIQUE,
  description TEXT,
  price DOUBLE(10,2),
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  modified_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

Cada campo tiene roles específicos; ejemplo: - productID identifica de forma única cada producto. - SKU (Stock Keeping Unit) referencia global y única. - slug facilita SEO y navegación de la aplicación.

¿Cómo modificar efectivamente estructuras existentes en MySQL?

Una modificación destacada aquí es añadir la columna price a una tabla existente:

ALTER TABLE products ADD COLUMN price DOUBLE(10,2) AFTER slug;

Esta opción permite incluir precios sin requerir específicamente un valor para cada registro.

¿En qué consiste el manejo de transacciones en bases de datos?

Las transacciones definen cómo se ejecutan múltiples instrucciones: - Un insert grande (>3000 tuplas) consume muchos recursos. - Dividiendo inserts en fragmentos más pequeños (batches) se optimiza el uso de CPU y recursos.

El mejor método es realizar inserciones en pequeños grupos para no monopolizar toda la capacidad del servidor:

  • Ejecutar pequeños grupos de datos entre solicitudes.
  • Facilitar la interacción simultánea en entornos de producción.

¿Cómo insertar datos masivos usando comandos SQL?

Se explica cómo iniciar inserciones masivas usando herramientas prácticas como la terminal:

  1. Crear un archivo SQL (insert_products.sql) con instrucciones masivas:
INSERT IGNORE INTO products (SKU, name, slug, description, price)
VALUES ('3401391', 'Heavy Duty Steel Computer', 'heavy-duty-steel-computer', 'Sample description', 99.99);
  1. Ejecutar desde la terminal usando comandos:
mysql -u usuario -p -D nombre_bd < insert_products.sql

Este método permite introducir cientos o miles de registros rápidamente, validando automáticamente claves únicas (SKU, slug).

¿Cómo verificar inserciones y gestionar duplicados?

Finalmente, verificar la correcta inserción de registros es crucial mediante:

SELECT COUNT(*) FROM products;

Además, el uso del modificador IGNORE en inserts evita que la instrucción falle debido a claves duplicadas, ofreciendo consistencia y evitando errores en producción.

¿Tienes alguna experiencia o consulta adicional con estas prácticas? Comparte tu opinión en los comentarios.