Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Complexidade desnecessária

De acordo com o Pressmann, 6ª edição, um dos princípios de desenvolvimento de software é o princípio do beijo KISS (Keep it simple stupid). Esse mesmo princípio se aplica à modelagem de dados. " Imagine que você está desenvolvendo o modelo lógico para o "Buscante", um e-commerce inovador especializado na venda de livros. Durante a modelagem, você identifica que cada cliente pode realizar várias compras e, para cada compra, pode escolher diferentes tipos de pagamento. Além disso, cada compra pode conter múltiplos livros. Para representar essas relações complexas, você precisa criar uma entidade que relacione clientes, compras e tipos de pagamento, garantindo a integridade e a flexibilidade do modelo.

Como você criaria essa entidade no modelo lógico, considerando as melhores práticas de nomenclatura e representação que aprendemos, para representar adequadamente as relações entre clientes, compras e tipos de pagamento no "Buscante"? " A melhor forma é criar a entidade venda e outra com os itens da venda. Na entidade venda apareceriam os dados básicos: id_venda, id_cliente, id_forma_pagamento, data_venda, valor_total_venda. Na entidade itens_de_venda teríamos o id_venda, id_livro, quantidade, preco_unitario, desconto, valor_item_venda (multiplicação da quantidade pelo preço unitário menos o valor do desconto). Essa tabela não teria identificador próprio, mas um identificador composto de id_vemda com id_livro. Trazer todos os dados para uma única entidade, criaria uma entidade frankistein ou colcha de retalhos, com mistura de elementos em uma complexidade desnecessária e que só atrapalharia a implantação e perfórmance do sgbd.

Faz sentido criar uma única entidade para resovler a questão?

1 resposta
solução!

Oi, José!

A abordagem que você está sugerindo, com duas entidades (venda e itens_de_venda), faz total sentido e segue as boas práticas de modelagem de dados. Criar uma única entidade para tudo (cliente, venda, pagamento, livros, etc.) tornaria o modelo muito complexo e difícil de manter, o que foge ao princípio do KISS.

Com duas tabelas separadas, você mantém o modelo mais limpo e facilita a manutenção. A tabela venda representa a transação de compra, com informações gerais, como id_venda, id_cliente, id_forma_pagamento, etc. Já a tabela itens_de_venda trata das informações específicas de cada item, como id_livro, quantidade, preco_unitario, etc.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada.

Abraços.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓

bons estudos