Saudações,
Estou com um problema, quero criar meu domain e vou ter uma nota fiscal onde essa nota fiscal pode conter vários produtos e quero depois ver no meu produto em qual nota fiscal ele veio, e eu posso ter mais de um produto com o mesmo código.
Como ficaria as minhas classe?
Toda NF, obrigatoriamente, contém seus items (que nada mais são que os produtos vendidos, mas, com as informações de quantidade de cada um e o cálculo do subtotal do item em si).
Desta forma, eu gosto da abordagem de criar-se uma tabela chamada ITEM e, ali, associar a NF com o produto e inserir os valores adicionais (como citados acima);
Entendi Darlan, mas no meu caso só vai ocorrer entrada de dados e eu posso já possuir o item que esta entrando no estoque, e preciso salvar as duas notas fiscais do mesmo item. Entende?
Quem pertence a NF são os itens e não o contrário.
E como você precisa de uma tabela associativa, pelo item você consegue chegar a NF.
Então eu criaria duas tabelas, uma NFEntrada e outra Ferramenta?
E vou guardar todas as notas fiscais e depois relaciono, quais notas fiscais possuem o código da ferramenta?
EXEMPLO
tabela ferramenta
codigo
123456
tabela nfentrada
numero ferramenta
222333 123456
222444 123456
A tabela NF pode conter uma coluna que defina o tipo de NF, E ou S (não existe um tipo específico de nota, sei lá, algo a ver com a série para entrada e saída?).
Desta maneira, você teria uma tabela NF
NOTA_FISCAL
ID
SERIE
NUMERO_NF
TIPO_NF
VALOR_TOTAL_NF
…
E uma tabela ITEM_VENDA
ITEM_VENDA
ID
NOTA_FISCAL_ID
ITEM_ID
QUANTIDADE
…
Entendeu? Ao menos é o que me parece coerente.
Entendi, então é criar uma outra tabela item_notafiscal.
O que acontece… Você tem uma relação entre NF e item (produto ou serviço, já que uma NF pode se referir a qualquer um destes) que é N para N (N:N). Ou seja, cada NF pode conter vários itens e cada item pode estar em várias NFs distintas.
Desta maneira, não tem outra alternativa senão criar a tabela associativa.
Ela poderia ser composta, simplesmente, pelas FKs de NF e item, mas, você pode incluir mais cosias nela (como eu sugeri).