Database Schema

RV Store — Schema

Estrutura completa do banco de dados MySQL. 18 tabelas compatíveis com Laravel 13 + Sanctum. Cada coluna lista tipo, restrições e referências de chave estrangeira.

Tabelas

18

Engine

InnoDB

Charset

utf8mb4

Moeda

AOA

PK — Primary Key FK — Foreign Key UQ — Unique NN — Not Null IDX — Index
Autenticação

tabela

users

Usuários do sistema — clientes e administradores. Base para o Laravel Sanctum.

11 colunas

tabela

enderecos

Endereços de entrega do cliente. Suporte a múltiplos endereços com marcação de padrão.

11 colunas
Catálogo

tabela

categorias

Categorias de produtos para navegação e filtragem do catálogo.

8 colunas

tabela

produtos

Tabela central do catálogo. Cada produto tem categoria, preço base, natureza e flags de destaque/ativo.

19 colunas

tabela

produto_variacoes

Variações de tamanho/cor por produto. Cada variação tem estoque, SKU e acréscimo de preço próprio.

9 colunas

tabela

produto_imagens

Múltiplas imagens por produto. Uma pode ser marcada como principal.

7 colunas

tabela

produto_avaliacoes

Reviews de produtos. Um cliente só pode avaliar cada produto uma vez (unique composto).

7 colunas
Promoções & Cupons

tabela

promocoes

Promoções por produto ou categoria com vigência de datas.

9 colunas

tabela

cupons

Cupons de desconto. Suporta percentagem ou valor fixo, com limite de usos e validade.

14 colunas
Carrinho

tabela

carrinhos

Sessão de carrinho. Pode ser de um utilizador autenticado ou visitante (via session_token).

4 colunas

tabela

carrinho_itens

Itens dentro de um carrinho. Armazena snapshot do preço unitário no momento da adição.

7 colunas
Pedidos / Vendas

tabela

pedidos

Cabeçalho de cada venda. Guarda snapshot do endereço, totais financeiros, status e dados de pagamento.

23 colunas

tabela

pedido_itens

Linhas do pedido. Snapshots de nome, código, tamanho e cor para histórico imutável.

14 colunas

tabela

pedido_historico

Auditoria de mudanças de status em cada pedido. Regista quem alterou e quando.

7 colunas
Extras

tabela

wishlists

Lista de desejos do cliente. Unique composto impede duplicata.

4 colunas

tabela

banners

Banners da home com suporte a vigência de datas e ordenação.

9 colunas

tabela

notificacoes

Notificações para clientes e admins. NULL em user_id significa broadcast global.

8 colunas

tabela

configuracoes

Chave-valor de configurações da loja. Sem created_at — só updated_at.

6 colunas