DevPath · Aprende a programar ESPTEN

Proyecto: tienda online

El plan: modelar una tienda

Tres piezas, una tienda

Un e-commerce se reduce a tres conceptos que se relacionan entre sí:

  1. Productos: el catálogo. Cada producto tiene nombre, precio y stock.
  2. Carrito: una colección temporal de productos que el cliente quiere comprar, con la cantidad de cada uno. Vive en memoria, no en la base de datos.
  3. Pedidos: cuando el cliente paga, el carrito se convierte en un pedido permanente que queda registrado.

Pedidos con líneas: una relación N:M

Un pedido no contiene un solo producto: contiene varios, y cada producto puede aparecer en muchos pedidos distintos. Eso es una relación muchos-a-muchos (N:M), y no se puede representar con una sola columna.

La solución es una tabla intermedia (también llamada tabla puente o de detalles/líneas). Cada fila de detalles une un pedido con un producto y guarda la cantidad:

productos        detalles                 pedidos
---------        --------                 -------
id  nombre       pedido_id  producto_id   id  fecha
 1  Teclado          1          1          1  2026-01-10
 2  Ratón            1          2          2  2026-01-11

El pedido 1 tiene dos líneas: 2 teclados y 1 ratón. Para saber qué lleva un pedido, haces un JOIN entre las tres tablas.

Pon esto en práctica

DevPath es un curso práctico: aquí lees la teoría; en la app la pones en práctica con ejercicios que se ejecutan de verdad, sin conexión.

Empezar gratis en la app →
Dinero en céntimos y control de stock →