Temos uma tabela de pagamento e os agentes recebem comissão sobre os pagamentos. A comissão baseia-se em alguns fatores diferentes, como o tempo que levou para receber o pagamento, para que haja alguns cálculos envolvidos ao determinar a taxa de comissão que o agente recebe, mas nada obscenamente complexo.
Por exemplo, provavelmente nunca será mais complexo do que isso:
SELECT Payments.Amount * CASE
WHEN DateDiff(year, Client.Received, Payments.DatePaid) = 1 THEN Rates.Rate1
WHEN DateDiff(year, Client.Received, Payments.DatePaid) = 2 THEN Rates.Rate2
ELSE Rates.Rate3 END
Faria sentido criar uma segunda tabela para armazenar esses dados em vez de consultá-los sempre que necessário? Ou devo ficar apenas com consultas em tempo de execução que extraem os dados sempre que solicitados?
E, mais importante, quais são os fatores a serem usados ao determinar se uma consulta deve ser executada a qualquer momento que os dados forem necessários ou se os dados devem ser armazenados em uma tabela separada própria?