У нас есть таблица платежей, и агенты получают комиссию за платежи. Комиссия основывается на нескольких различных факторах, например, на том, сколько времени потребовалось для получения платежа, поэтому при вычислении размера комиссии, которую получает агент, требуются некоторые расчеты, но ничего сложного.
Например, это, вероятно, никогда не будет более сложным, чем это:
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
Имеет ли смысл строить 2-ю таблицу для хранения этих данных, а не запрашивать ее в любое время, когда это необходимо? Или я должен просто придерживаться запросов времени выполнения, которые извлекают данные всякий раз, когда они запрашиваются?
И что более важно, какие факторы следует использовать при определении того, должен ли запрос выполняться в любое время, когда необходимы данные, или данные должны храниться в отдельной таблице?