Я приведу некоторый контекст, чтобы он имел смысл.Я собираю оценки клиентов для продуктов в таблице (рейтинг) и хочу, чтобы можно было возвращать накопленное скользящее среднее рейтингов по времени.
Ниже приведен базовый пример взятия рейтинга в день:
02 FEB - Rating: 5 - Cum Avg: 5
03 FEB - Rating: 4 - Cum Avg: (5+4)/2 = 4.5
04 FEB - Rating: 1 - Cum Avg: (5+4+1)/3 = 3.3
05 FEB - Rating: 5 - Cum Avg: (5+4+1+5)/4 = 3.75
Etc...
Я пытаюсь придумать подход, который не будет ужасно масштабироваться.
Моя текущая идея состоит в том, чтобы иметь функцию, которая отключается при вставке строки в таблицу рейтинга, которая вычисляет среднее значение на основе предыдущей строки для этого продукта
Таким образом, поля будутможет быть что-то вроде:
TABLE: Rating
| RatingId | DateTime | ProdId | RatingVal | RatingCnt | CumAvg |
Но это кажется довольно хитрым способом хранения данных.
Каков (или любой) способ добиться этого?Если бы я использовал своего рода «триггер», как вы поступите с SQLAlchemy?
Любой и все советы приветствуются!