certmundo.
es‑mx

6 min de lectura

¿Cómo diseñar y crear una base de datos MySQL desde cero?

Diseñar una base de datos MySQL desde cero significa planear qué información vas a guardar, cómo se organiza y qué tipo de dato tiene cada campo.

Antes de abrir phpMyAdmin, piensa en papel

Imagina que trabajas en el área de tecnología de Liverpool. Tu jefe te pide un sistema para registrar los productos de la tienda en línea. Sin pensar, abres phpMyAdmin y empiezas a crear tablas al azar. Una semana después, los datos están mezclados, hay columnas duplicadas y nadie entiende la estructura. Ese error cuesta tiempo y dinero.

La solución es diseñar primero en papel, luego construir en la computadora. Este hábito separa a los desarrolladores junior de los que saben lo que hacen.

El método "Entidad-Atributo-Relación" simplificado

Usa este proceso de tres pasos antes de tocar phpMyAdmin:

Paso 1 — Identifica las entidades. Una entidad es una "cosa" de la que necesitas guardar información. En un sistema de Liverpool, las entidades serían: productos, clientes, pedidos.

Paso 2 — Lista los atributos. Los atributos son los datos de cada entidad. Un producto tiene: nombre, precio, stock, categoría. Un cliente tiene: nombre, correo, teléfono, dirección.

Paso 3 — Define las relaciones. ¿Cómo se conectan las entidades? Un cliente puede hacer muchos pedidos. Un pedido puede contener muchos productos. Esas conexiones se llaman relaciones.

Con este mapa claro, crear las tablas en phpMyAdmin toma minutos.

Los tipos de datos más importantes en MySQL

MySQL necesita saber qué tipo de información va en cada columna. Elegir el tipo incorrecto provoca errores o desperdicio de espacio.

Estos son los tipos que usarás el 90% del tiempo:

Tipo Úsalo para Ejemplo
INT Números enteros Stock: 150, edad: 32
DECIMAL(10,2) Precios con centavos $1,299.99
VARCHAR(n) Texto corto variable Nombre: "Bimbo Donas"
TEXT Texto largo Descripción de producto
DATE Fechas 2024-07-15
TINYINT(1) Verdadero/Falso (0 o 1) Activo: 1, Inactivo: 0

Un error muy común es usar VARCHAR para guardar precios. Si guardas "$1,299" como texto, no podrás sumar ni filtrar por rango de precio. Usa siempre DECIMAL(10,2) para dinero.

Crea tu primera base de datos en phpMyAdmin

Abre tu navegador y ve a http://localhost/phpmyadmin. Sigue estos pasos exactos:

1. Crea la base de datos. En el panel izquierdo, haz clic en "Nueva". Escribe el nombre: tienda_liverpool. En "Cotejamiento" selecciona utf8mb4_unicode_ci. Esto permite guardar acentos y la letra ñ sin problemas. Haz clic en "Crear".

2. Crea la tabla productos. Dentro de tienda_liverpool, escribe productos en el campo "Nombre" y pon 6 en "Número de columnas". Haz clic en "Continuar".

Configura las columnas así:

  • id → Tipo: INT, Longitud: vacío, Índice: PRIMARY, A_I (Auto Increment): ✓
  • nombre → Tipo: VARCHAR, Longitud: 150
  • precio → Tipo: DECIMAL, Longitud: 10,2
  • stock → Tipo: INT, Longitud: vacío
  • categoria → Tipo: VARCHAR, Longitud: 80
  • activo → Tipo: TINYINT, Longitud: 1, Predeterminado: 1

Haz clic en "Guardar". phpMyAdmin genera el SQL por ti.

3. Crea la tabla clientes. Repite el proceso con una tabla de 5 columnas:

  • idINT, PRIMARY, Auto Increment
  • nombreVARCHAR(100)
  • correoVARCHAR(150)
  • telefonoVARCHAR(15)
  • fecha_registroDATE

Por qué necesitas una llave primaria en cada tabla

La llave primaria (PRIMARY KEY) es el identificador único de cada fila. Ningún producto puede tener el mismo id que otro. MySQL rechaza duplicados automáticamente.

Activar Auto Increment significa que MySQL asigna el número solo. Tú insertas un producto y MySQL le pone id = 1. El siguiente recibe id = 2. Nunca tienes que calcularlo manualmente.

Sin llave primaria, no puedes editar ni eliminar un registro específico. Es como tener una caja de expedientes sin nombres en los folders.

Conectar tablas con llaves foráneas

Imagina que FEMSA necesita registrar los pedidos de sus clientes. Un pedido pertenece a un cliente. Para conectarlos, usas una llave foránea.

Crea la tabla pedidos con estas columnas:

  • idINT, PRIMARY, Auto Increment
  • id_clienteINT
  • totalDECIMAL(10,2)
  • fecha_pedidoDATE
  • estadoVARCHAR(30)

La columna id_cliente guarda el id del cliente que hizo ese pedido. Si el cliente con id = 5 hace un pedido, el pedido guarda id_cliente = 5. Así sabes exactamente a quién pertenece cada pedido.

Para agregar la relación formal en phpMyAdmin:

  1. Abre la tabla pedidos.
  2. Ve a la pestaña "Estructura" y luego a "Vista de relaciones".
  3. En la columna id_cliente, selecciona la tabla clientes y la columna id.
  4. Guarda.

Ahora MySQL protege la integridad. No puedes crear un pedido con un id_cliente que no existe.

Errores comunes al diseñar bases de datos

Error 1: Guardar varios datos en una sola columna. Algunos principiantes crean una columna datos_cliente y guardan ahí "Juan Pérez, juan@correo.com, 5512345678". Esto hace imposible buscar por correo o por nombre por separado. Cada dato merece su propia columna.

Error 2: Usar nombres de columnas en español con espacios. Evita nombre del producto. Usa siempre nombre_producto con guion bajo. Los espacios generan errores en el código PHP.

Error 3: No usar utf8mb4_unicode_ci. Si usas la codificación equivocada, palabras como "categoría" o "diseño" se guardan con caracteres extraños. Siempre selecciona utf8mb4_unicode_ci al crear la base de datos y las tablas.

Error 4: Guardar precios como VARCHAR. Si guardas "$1,299.99" como texto, no puedes hacer WHERE precio < 500 ni sumar totales. MySQL trata el texto como texto, no como número. Usa DECIMAL(10,2) sin excepción.

Error 5: Olvidar el Auto Increment en la llave primaria. Sin Auto Increment, tendrías que calcular el siguiente id manualmente antes de cada inserción. Es un error que se descubre dolorosamente en producción.

Inserta datos de prueba desde phpMyAdmin

Con tus tablas listas, agrega datos reales para probar. En phpMyAdmin:

  1. Haz clic en la tabla productos.
  2. Ve a la pestaña "Insertar".
  3. Llena los campos:
    • nombre: Bimbo Pan Blanco 680g
    • precio: 42.50
    • stock: 200
    • categoria: Panadería
    • activo: 1
  4. Haz clic en "Continuar".

Repite con dos o tres productos más. Luego ve a la pestaña "Examinar" para ver tus datos en una tabla ordenada.

Ahora tienes una base de datos real con datos reales. En la siguiente lección conectarás PHP con esta base de datos y mostrarás estos productos en una página web.

Un esquema bien diseñado es la base de todo

Una base de datos mal diseñada no se repara con mejor código PHP: hay que reconstruirla desde cero.

Tómate 15 minutos extra al inicio para dibujar tus entidades y atributos. Ese tiempo te ahorra horas de errores después. La disciplina del diseño es lo que distingue un sistema que dura años de uno que colapsa en semanas.

Puntos clave

  • Diseña siempre en papel primero: identifica las entidades (productos, clientes, pedidos), sus atributos y sus relaciones antes de abrir phpMyAdmin.
  • Usa `DECIMAL(10,2)` para precios en pesos, `VARCHAR` para texto corto, `INT` para enteros y `TINYINT(1)` para valores verdadero/falso.
  • Cada tabla debe tener una llave primaria (`PRIMARY KEY`) con `Auto Increment` para que MySQL asigne los identificadores únicos de forma automática.
  • Las llaves foráneas conectan tablas entre sí: la columna `id_cliente` en la tabla `pedidos` apunta al `id` de la tabla `clientes`, protegiendo la integridad de los datos.
  • Los errores más costosos son guardar precios como texto, mezclar varios datos en una columna y no usar la codificación `utf8mb4_unicode_ci` al crear la base de datos.

Comparte esta lección: