Entendendo a diferença entre transações e itens da transação.
Hoje vamos “abrir o motor” do banco de dados e entender como sistemas reais funcionam.
Quem fez o pedido?
O que foi comprado?
Visão no nível do pedido.
SELECT c.nome AS cliente,
p.id AS pedido,
p.valor_total,
p.data_pedido
FROM clientes c
INNER JOIN pedidos p
ON p.cliente_id = c.id
ORDER BY c.nome;
“Mostre todos os pedidos junto com o nome do cliente que fez cada pedido.”
Cada linha representa UM pedido.
O banco conecta tabelas através das chaves.
1 → Ana
2 → Carlos
101 → cliente 1
102 → cliente 2
pedido.cliente_id = cliente.id
Agora olhando os produtos do pedido.
SELECT
c.nome AS cliente,
pr.nome AS produto,
pe.quantidade,
pe.valor_total,
pe.data_pedido
FROM clientes c
INNER JOIN pedidos pe
ON pe.cliente_id = c.id
INNER JOIN produtos pr
ON pr.id = pe.produto_id
ORDER BY c.nome, pe.data_pedido;
A tabela produtos
O banco agora mostra o que foi comprado.
Cada linha representa um produto comprado.
Pedido vs Produto do Pedido.
O pedido possui apenas um produto.
pe.produto_id
Como armazenar:
• 1 notebook
• 2 mouses
• 1 monitor
Sistemas reais precisam separar pedidos dos itens do pedido.
Estrutura usada em ERPs, e-commerces e sistemas corporativos.
Liste todos os produtos comprados pela cliente Ana.
Mostre todos os itens do pedido 1001.
Calcule o valor total de cada pedido.
Descubra qual produto foi mais vendido.
A diferença parece pequena.
Mas agora vocês entendem a diferença entre: