Abbiamo una tabella dei pagamenti e gli agenti ricevono una commissione sui pagamenti. La commissione si basa su alcuni fattori diversi, come il tempo impiegato per ottenere il pagamento, quindi ci sono alcuni calcoli coinvolti nel determinare il tasso di commissione che ottiene l'agente, ma nulla di oscenamente complesso.
Ad esempio, probabilmente non sarà mai più complesso di così:
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
Avrebbe senso costruire una seconda tabella per contenere questi dati invece di interrogarli ogni volta che è necessario? O dovrei semplicemente attenermi alle query di runtime che estraggono i dati ogni volta che vengono richiesti?
E, soprattutto, quali sono i fattori da utilizzare per determinare se una query deve essere eseguita ogni volta che sono necessari i dati o se i dati devono essere archiviati in una tabella separata?