Pular para conteúdo

Database

erDiagram CATEGORIA ||--o{ PRODUTO : classifica FORNECEDOR o|--o{ PRODUTO : fornece PRODUTO ||--o{ COMPOSICAO : kit PRODUTO ||--o{ COMPOSICAO : componente FORNECEDOR o|--o{ ENTRADA : origem ENTRADA ||--o{ ENTRADA_ITEM : contem PRODUTO ||--o{ ENTRADA_ITEM : recebido SAIDA ||--o{ SAIDA_ITEM : contem PRODUTO ||--o{ SAIDA_ITEM : separado PRODUTO ||--o{ AJUSTE : ajustado PRODUTO ||--o{ MOVIMENTO : movimenta PRODUTO ||--o{ NOTIFICACAO : alerta FORNECEDOR o|--o{ PEDIDO_COMPRA : fornece PEDIDO_COMPRA ||--o{ PEDIDO_ITEM : contem PRODUTO ||--o{ PEDIDO_ITEM : solicitado USER o|--o{ LOG : registra
Entidade Campos principais Relacionamentos e restrições
Categoria id; nome varchar(100) UNIQUE; descrição; ativo; timestamps categoria de produtos
Fornecedor id; nome varchar(200) UNIQUE; CNPJ UNIQUE opcional; telefone; e-mail; contato; endereço; ativo; timestamps fornecedor de produto/entrada/pedido
Produto id; SKU varchar(50) UNIQUE; código de barras; nome; descrição; unidade; estoque mínimo; categoria PROTECT; fornecedor SET_NULL; preços; localização; imagem; estoque atual/reservado/movimentado; ativo; pré-cadastro; timestamps entidade central do estoque
ComposicaoProduto id; kit FK Produto CASCADE; componente FK Produto PROTECT; quantidade default 1 UNIQUE kit + componente
Entrada / EntradaItem entrada: NF, emissão/recebimento, fornecedor, usuário, status, pedido opcional, observação; item: produto, quantidade, recebida, status entrada CASCADE; produto PROTECT
Saida / SaidaItem saída: motivo, data, usuário, status, observação; item: produto, quantidade, separada, status saída CASCADE; produto PROTECT
AjusteInventario produto PROTECT; quantidade signed; motivo; usuário; criado gera movimento
MovimentoEstoque produto CASCADE; tipo; quantidade/delta; saldo anterior/posterior; referência; usuário SET_NULL; criado histórico append-only
Notificacao produto CASCADE; tipo; mensagem; lida; resolvida; datas alerta de estoque mínimo
PedidoCompra / Item fornecedor; usuário; status; data; observação; item com produto, quantidade, preço e recebida itens CASCADE; status acompanha recebimentos
Log usuário SET_NULL; ação; descrição; criado auditoria do sistema

Campos opcionais são nulos apenas quando declarados explicitamente; textos blank normalmente permanecem NOT NULL.