DevPath · Aprenda a programar ESPTEN

Capstone: projete e consulte um banco de dados

O modelo de dados da loja

Uma loja online em quatro tabelas

Até agora você trabalhou com tabelas isoladas. Em uma aplicação real os dados vivem distribuídos em várias tabelas relacionadas para evitar repetições. Modelamos uma loja com quatro:

clientes  (id, nome, cidade)
produtos  (id, nome, preco)
pedidos   (id, cliente_id, data)
detalhes  (id, pedido_id, produto_id, quantidade)

Relações (chaves estrangeiras)

Uma chave estrangeira é uma coluna que aponta para o id de outra tabela. É assim que as linhas se conectam entre tabelas:

  clientes.id ──< pedidos.cliente_id        (um cliente tem muitos pedidos)
   pedidos.id ──< detalhes.pedido_id        (um pedido tem muitas linhas)
  produtos.id ──< detalhes.produto_id       (um produto aparece em muitas linhas)

O símbolo ──< se lê "um para muitos": um cliente pode ter muitos pedidos, mas cada pedido pertence a um único cliente.

A tabela detalhes é a que une pedidos com produtos: cada linha é uma linha de pedido ("3 unidades do produto X dentro do pedido Y"). Por isso ela guarda quantidade ali e não em pedidos nem em produtos.

Por que tantas tabelas?

Isso é normalização: cada dado tem um único lugar onde é a verdade.

Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
Plano de consultas: unir, agregar, comparar →