Nous avons une table de paiement et les agents reçoivent une commission sur les paiements. La commission est basée sur quelques facteurs différents, tels que le temps qu'il a fallu pour obtenir le paiement, il y a donc des calculs impliqués lors de la détermination du taux de commission que l'agent obtient, mais rien d'obscurément complexe.
Par exemple, ce ne sera probablement jamais plus complexe que cela:
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
Serait-il judicieux de créer une deuxième table pour conserver ces données au lieu de les interroger chaque fois que cela est nécessaire? Ou devrais-je simplement m'en tenir aux requêtes d'exécution qui extraient les données chaque fois qu'elles sont demandées?
Et plus important encore, quels sont les facteurs à utiliser pour déterminer si une requête doit être exécutée chaque fois que les données sont nécessaires, ou si les données doivent être stockées dans une table distincte qui lui est propre?