"Si tú no trabajas por tus sueños, alguien te contratará para que trabajes por los suyos”

Steve Jobs

Afiliado
Dominios3Euros

Como programador autodidacta, reconozco que hay aspectos en los que puedo mejorar. Uno de ellos es el diseño de las bases de datos. Siempre me hablaron de la importancia de relacionar las tablas utilizando claves foráneas (FOREIGN KEY) para imponer restricciones y garantizar la integridad de los datos. Sin embargo, siempre descarté esta práctica, prefiriendo gestionar las relaciones directamente en el código de mis aplicaciones.

Con el tiempo, me di cuenta de que esta no era la mejor práctica. Al no definir relaciones explícitas en la base de datos, las aplicaciones externas, como Power BI o Metada, tenían dificultades para comprender la estructura de la base de datos. Esto dificultaba su reutilización y análisis, ya que carecían de la información necesaria sobre cómo las tablas estaban relacionadas entre sí.

Otra cosa que también descubrí fue la importancia de comentar los campos de la base de datos. A menudo, los nombres de los campos pueden no ser lo suficientemente descriptivos por sí mismos, lo que puede dificultar la comprensión de su propósito. Al comentar los campos con información adicional, facilitamos la auditoría de la base de datos y evitamos confusiones innecesarias.

Es por eso que en esta guía, exploraremos cómo diseñar una base de datos MySQL de manera coherente y consistente, utilizando claves foráneas para establecer relaciones y mejorar la comprensión y el análisis de nuestros datos en diversas aplicaciones.

 

Guía Paso a Paso para Crear una Base de Datos MySQL de Forma Coherente y consistente

Paso 1: Planificación

Antes de crear la base de datos, es crucial planificar su estructura. Identifica las entidades principales que necesitarás almacenar y las relaciones entre ellas. Esto te ayudará a diseñar una base de datos coherente y eficiente.

Paso 2: Accede a tu Servidor MySQL

Utiliza el cliente MySQL o una herramienta de administración como phpMyAdmin para acceder a tu servidor MySQL.

Paso 3: Inicia Sesión en MySQL

Inicia sesión en MySQL con las credenciales adecuadas para crear bases de datos.

css

mysql -u tu_usuario -p

Paso 4: Crea la Base de Datos

Crea una nueva base de datos utilizando un nombre descriptivo que refleje su propósito y contenido.

 

CREATE DATABASE nombre_de_tu_base_de_datos COMMENT='Base de datos para almacenar información sobre productos, albaranes de venta y sus correspondientes líneas de albarán';

Paso 5: Define las Tablas

Diseña las tablas de la base de datos de acuerdo con las entidades y relaciones identificadas en la fase de planificación. Asegúrate de utilizar nombres de tabla y columnas descriptivos y coherentes.

Tabla "productos": Almacena información sobre los productos disponibles para la venta.

 

CREATE TABLE productos (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT 'Identificador único del producto',
nombre VARCHAR(100) COMMENT 'Nombre del producto',
precio DECIMAL(10,2) COMMENT 'Precio del producto',
descripcion TEXT COMMENT 'Descripción detallada del producto'
);

Tabla "albaranes_venta": Registra información sobre los albaranes de venta realizados.

sql

CREATE TABLE albaranes_venta (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT 'Identificador único del albarán',
fecha DATE COMMENT 'Fecha en que se realizó el albarán',
cliente_id INT COMMENT 'ID del cliente asociado al albarán',
total DECIMAL(10,2) COMMENT 'Total de la venta',
FOREIGN KEY (cliente_id) REFERENCES clientes(id) COMMENT 'Clave foránea que referencia al cliente'
);

Tabla "lineas_albaran_venta": Almacena los detalles de los productos incluidos en cada albarán de venta.

CREATE TABLE lineas_albaran_venta (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT 'Identificador único de la línea de albarán',
albaran_id INT COMMENT 'ID del albarán asociado a la línea',
producto_id INT COMMENT 'ID del producto asociado a la línea',
cantidad INT COMMENT 'Cantidad de productos incluidos en la línea',
precio_unitario DECIMAL(10,2) COMMENT 'Precio unitario del producto',
subtotal DECIMAL(10,2) COMMENT 'Subtotal de la línea (cantidad * precio_unitario)',
FOREIGN KEY (albaran_id) REFERENCES albaranes_venta(id) COMMENT 'Clave foránea que referencia al albarán de venta',
FOREIGN KEY (producto_id) REFERENCES productos(id) COMMENT 'Clave foránea que referencia al producto'
);

Paso 6: Establece Claves Primarias y Restricciones de Integridad

Define las claves primarias y las restricciones de integridad referencial para garantizar la coherencia y consistencia de los datos.

Paso 7: Inserta Datos de Prueba

Inserta algunos datos de prueba en las tablas para verificar su funcionamiento y validar el diseño de la base de datos.

Paso 8: Verifica la Base de Datos

Utiliza consultas SQL para verificar que la base de datos y las tablas se han creado correctamente y contienen los datos esperados.

Paso 9: Documentación

Documenta la estructura de la base de datos, incluyendo la definición de tablas, claves primarias, relaciones y restricciones de integridad. Esto facilitará la comprensión y el mantenimiento de la base de datos en el futuro.

Paso 10: Cierre de Sesión

Finaliza la sesión de MySQL cuando hayas terminado de trabajar con la base de datos.

EXIT;

¡Felicidades! Has creado una base de datos MySQL de forma coherente y consistente, lista para almacenar y gestionar tus datos de manera eficiente.