valorUnitario * quantidade = valorTotal (vale a pena cadastrar o valorTotal?)

Olá galera, estava eu pensando aqui. No meu banco na tbCompras, ja tenho o “valorUnitario” e a “quantidade”, vale a pena cadastrar o “valorTotal” ja que ele é apenas o produto?

E se eu tiver uma lista de compras:

R$500 Monitor
R$500 Processador
R$100 Memoria
R$20 Mouse
R$25 Teclado
R$1145 (valorTotal)

ai vale a pena? ou é melhor fazer a consulta no banco e obter a soma?

Obrigado.

coloque o valor total no banco, senão depois quando os itens mudarem de preço, vc vai perder o valor total do pedido.

entendido =)
Eu ja fazia assim, mais vai sabe né ( Não existe pergunta cretina, existe cretino que não pergunta )

A pergunta não é se deve colocar o preço e sim se deve colocar o total.
A ideia de colocar uma coluna total é poder fazer pesquisas em cima dela. Ela é redundante pois poderia ser calculada toda a ver, o problema é que implicaria saber como o total foi calculado e isso não é trivial.

A sua assunção que total = quantidade * preço não é verdadeira 100% das vezes. O correto é assumir total = funcao(quatidade, preço, pedido)
Isto porque pode haver circunstancias como descontos, promoções e clientes vip. Simular essa função a todo o momento seria inviável até porque essa função muda com o tempo. É por isso que se guarda o total à parte.

Mesmo quando apenas existe uma multiplicação simples, colocá-la em todos o SQL que pesquisam pelo total seria uma repetição. Com N queries vc repiteria isso N vezes e isso não é bom (procure pelo principio DRY - Dont repeat yourself)

a sim, na correria escrevi só valor. já corrigi lá.

acho melhor vc guardar o preço unitário de cada item. o preço do produto deve mudar.
valor total é redundância. em alguns casos, em que se usa muito, é interessante para aliviar a carga do BD.

Se vc tem que guardar histórico pode ser interessante. De outra forma se vc tiver algum problema de performance em somar tudo de novo vc pode introduzir esta coluna para efeitos de coluna - geralmente DWs fazem coisas assim. No dia a dia parece redundante, como um campo ‘confirmação da senha’.