Чего я хочу достичь:
У меня есть таблица, обозначающая ID и Кредиты каждого индивидуального ID.
Я хочу оценить каждый идентификатор как rate(ID)=Credit(ID)/sum(Credit(ID))
сумма превышает все идентификаторы
Я буду обновлять таблицу довольно часто и хочу сохранить sum(Credit(ID))
под рукой, создав еще один столбец и сохранив эту сумму в таблице (скажем, sigmaID
), которая всегда должна иметь одинаковое значение для всех строк .
Всякий раз, когда я изменяю Кредит для идентификатора (скажем, добавить 100), я могу просто выполнить ту же операцию с этим значением столбца (добавить 100)
- Нужно ли обновлять
sigmaID
для всех строк? Будет ли это эффективно?
- Я хотел бы периодически проверять, действительно ли
sigmaID
sum(Credit(ID))
на предмет согласованности, переусердствовал ли я? Будет ли это неэффективно?
- Есть ли другой подход к этому (я беспокоюсь об эффективности)?
Пожалуйста, предоставьте чистые запросы SQL, так как мне нужно поместить все это в UPDATE
триггер , который будет вычислять этот рейтинг (и загружать другие формулы с другими параметрами идентификатора). У меня может быть доступ к языку сценариев (PHP / python), но я точно не знаю. Отсюда и чистый запрос SQL.