Três peças, uma loja
Um e-commerce se reduz a três conceitos que se relacionam entre si:
- Produtos: o catálogo. Cada produto tem
nome,preçoeestoque. - Carrinho: uma coleção temporária de produtos que o cliente quer comprar, com a quantidade de cada um. Vive na memória, não no banco de dados.
- Pedidos: quando o cliente paga, o carrinho se transforma em um pedido permanente que fica registrado.
Pedidos com itens de linha: uma relação N:M
Um pedido não contém um único produto: contém vários, e cada produto pode aparecer em muitos pedidos diferentes. Isso é uma relação muitos-para-muitos (N:M), e não pode ser representada com uma única coluna.
A solução é uma tabela de junção (também chamada de tabela ponte ou de
itens/linhas). Cada linha de itens_pedido une um pedido com um produto
e guarda a quantidade:
produtos itens_pedido pedidos
-------- ------------ -------
id nome pedido_id produto_id id data
1 Teclado 1 1 1 2026-01-10
2 Mouse 1 2 2 2026-01-11
O pedido 1 tem dois itens de linha: 2 teclados e 1 mouse. Para saber o que um
pedido leva, você faz um JOIN entre as três tabelas.