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?