Tenemos una tabla de pagos y los agentes obtienen una comisión por los pagos. La comisión se basa en algunos factores diferentes, como el tiempo que tomó obtener el pago, por lo que hay algunos cálculos involucrados al calcular la tasa de comisión que obtiene el agente, pero nada obscenamente complejo.
Por ejemplo, probablemente nunca será más complejo que esto:
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
¿Tendría sentido construir una segunda tabla para contener estos datos en lugar de consultarlos cada vez que sea necesario? ¿O debería seguir con las consultas en tiempo de ejecución que extraen los datos cada vez que se solicitan?
Y, lo que es más importante, ¿cuáles son los factores a utilizar al determinar si una consulta debe ejecutarse cada vez que se necesitan los datos, o si los datos deben almacenarse en una tabla propia?