получается ни оценивать, ни выбрать. Используется Spring Boot, Hibernate и Postgres.
Есть entity X с таблицей X_table (колонки a1 и a2). Есть внешний REST API, который по запросу принимает a2 и b1 и возвращает некий коэффициент b2. И есть задача: от пользователя получить b1 и вернуть sum(a1*a2*b2) from X.
Про http cache над внешним API уже подумал.
Решение 1: Создать db function (например на PL/Python) get_coefficient, которая делает http запрос и получает коэффициент, и вернуть select(sum(a1*a2*get_coefficient(a2, b1))) from X_table
Решение 2: Взять все X из базы данных, для каждой X получить коэффициент, а потом reduce по add.
Кешировать или предугадать b1 невозможно (слишком много вариантов). Количество X будет довольно большим (сейчас несколько сотен, а будет - несколько тысяч). Сами X будут удалятся и добавлятся. Может есть варианты получше?
Исправил вопрос, извините.
Обсуждают сегодня