Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Relação entre Produtos e Vendas

Olá a todos,

Acredito haver um pequeno equívoco no modelo. A relação entre Produtos e Vendas é de n:m, o que faz com que seja gerada a tabela de Itens Vendidos. Assim, Itens Vendidos funciona como uma tabela intermediária entre os Produtos e as Vendas e a cardinalidade das relações deveria ser assim:

Produtos (1) -------- (n) Itens_Vendidos (n) -------- (1) Vendas

Dessa forma, é possível que um Produto apareça uma ou mais vezes em Itens Vendidos (afinal, um produto é normalmente vendido mais de uma vez) e que uma Venda apareça uma ou mais vezes em Itens Vendidos (afinal, uma venda normalmente contem diversos itens).

No entanto, no diagrama mostrado na aula, a relação entre Produtos e Itens Vendidos é de 1:1, o que faria com que um poduto pudesse aparecer somente uma vez na tabela de Itens Vendidos, isto é, um produto só poderia ser vendido uma única vez e nunca mais.

Sei que é apenas um detalhe, mas pode gerar alguma confusão. Deixo, então, a sugestão de revisão.

5 respostas

Olá Rômulo, tudo bem? Certo, acho que entendi sua lógica, porém veja bem, se formos trabalhar com um sistema que gera notas fiscais para os clientes a cada venda, então o primeiro ponto, o ponto inicial é a venda, logo temos que registrar as vendas, e o que cada venda possui correto? No caso os itens vendidos (ou itens da venda), que como você falou serve apenas para podermos vincular e organizar os produtos para cada venda, ou seja uma tabela associativa. Porém a lógica do instrutor está coerente, quando ele afirma que 1 venda possui 1:N, ou seja 1 venda possui 1 mais itens, e realmente é isso que acontece, e isso também é refletido até na programação, principalmente se usarmos o paradigma de OO (Orientação a Objetos).

Porém realmente quando ao relacionamento itens vendidos e produtos, o correto é 1 produto pode está em vários itens vendidos, então o engano está apenas nesse relacionamento. Realmente foi um detalhe que deixamos passar, bem vou passar para o setor responsável verificar.

Obrigado pelo feedback e bons estudos!

solução!

Olá, Jonilson.

Agradeço pelo retorno e pela mensagem. No entanto, não entendi por que você utilizou a lógica de que uma venda possui um ou mais itens como um ponto contrário ao que eu disse. Eu concordo com a lógica e inclusive a descrevi no meu post anterior. Só que para essa lógica funcionar, um item também deve poder se relacionar com uma ou mais vendas Por isso, deixei a sugestão de revisão.

Mais uma vez, obrigado pela resposta!

Rômulo, entramos em contato com o instrutor, e ele nos explicou o porque essa modelagem foi feita dessa forma.

"O objetivo desta aula foi mostrar que o banco de dados deve ser montado conforme a modelagem. Se é 1:1 ou 1:N vai depender do tipo de negócio**. Eu queria montar um exemplo hipotético que apresentasse todas as possíveis relações. O analista de sistemas deve olhar o resultado do diagrama e montar o banco baseado nele. Se alguém escreveu que a regra é 1:1 ele vai montar assim. Se a regra é 1:N ele vai montar diferente. Não cabe o analista questionar o negócio. Note que eu não falo nada sobre que empresa estou modelando, que negócio está sendo apresentado. Ser 1:N não é sempre verdade." Um exemplo:

"E se o produto fosse a construção de um Airbus? Apesar do avião ter um modelo cada avião tem um númeno de série único e seu cadastro está associado a um único item de uma venda e não se repete".

"O importante, na aula, é mostrar que, independente do resultado do modelo, iremos construir um Database baseado no que o diagrama apresentado nos mostra. A intenção não é apresentar nenhum modelo real".

E vendo agora mais atentamente, isso está correto, se alguém disse que 1 produto, só pode está em 1 venda, então está certo, o banco será construído dessa forma.

Olá, Jonilson!

Concordo com o instrutor no caso do Airbus. Se o produto só pudesse ser vendido uma única vez por ter um número de série único, a relação teria que ser de 1:1. Se objetivo da aula foi mostrar um modelo mais generalista e hipotético, tudo bem também.

Creio que o que me gerou confusão foi que, por conta do contexto, li o modelo pensando especificamente na empresa fictícia dos sucos de frutas que estamos usando nos cursos. E daí haveria o equívoco relatado.

Agradeço pela sua preocupação em esclarecer e pela resposta do instrutor.

Entendo Rômulo, por isso vamos colocar uma nota explicativa na aula, para sanar possíveis dúvidas. Mesmo assim, obrigado pelo feeadback e bons estudos!