Estrutura de banco para produtos seriados
Prezados,
Estou modelando um banco para um sistema em que serão cadastrados produtos, e estes são seriados. O banco precisa controlar entradas e saídas. Até o momento estou com seguinte estrutura (e travado nisso):
- Produtos
- Id
- Nome
- Itens
- Id
- ItemId
- ProdutoId
- Serial
Ou seja, um item (que nada mais é que o serial do produto) pode ser um item comum ou ser um container (uma embalagem) com outros vários itens, por isso o relacionamento da tabela Itens com ela mesmo. Até aqui tudo aparentemente beleza. O problema se dá na movimentação dessa coisa toda.
Estou imaginando fazer assim: ao dar entrada o sistema verifica se o Item já existe, caso não grava no BD. Após isso o id deste Item vai para a tabela Entradas. Ao dar uma saída, o mesmo processo: grava o id do Item na tabela Saidas. Esta correto este procedimento? Meu principal receio, neste caso, é gerar redundância.
Ah, o sistema tem outra particularidade: é usado por múltiplas empresas assim, um Item pode "sair" de uma empresa e "entrar" em outra. Tomando como exemplo o ItemId 10: ele entra na empresa X. Depois o ItemId 10 saí da empresa X e entra na empresa Y e, em outra ocasião, saí da empresa Y para outra empresa qualquer. Preciso fazer toda essa rastreabilidade. Cada produto pode ter vários itens. Ainda citanto exemplo, o "Produto A" pode ter 50 caixas (cada caixa tem um serial) e cada caixa ter 30 itens (cada um com um serial diferente).
Ficou muito confuso? É, eu também estou queimando neurônios como fazer isso da melhor forma. Será que consigo alguma orientação de que caminho seguir?
Discussão (1)
Carregando comentários...