Tres piezas, una tienda
Un e-commerce se reduce a tres conceptos que se relacionan entre sí:
- Productos: el catálogo. Cada producto tiene
nombre,precioystock. - 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.
- 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.