валют.
Базовая цена стоимости задается в различных валютах: в рублях RUB, в евро EUR или долларах USD. Цены, номинал которых задан в иностранной валюте умножаются на текущий курс.
Для хранения данных о стоимости товаров в таблице созданы поля:
‘base_price’ – Базовая цена товара, стоимость в рублях, долларах, евро
‘currency’ – Тип, в какой валюте задана цена: в рублях RUB, в евро EUR или долларах USD
‘price’ – конвертированная цена, с учетом текущего курса валюты.
Данные стоимости товаров и курсов валют хранятся в разных таблицах: products и currency, которые имеют связь один ко многим.
Валюты обновляются ежедневно по API Центрбанка. Так как курсы валют меняются ежедневно, то и конвертацию заданных в валюте цен необходимо производить минимум раз в сутки.
На первый взгляд проблем нет, получить данные товаров где тип валюты не рубли, (‘currency’ != RUB), и в цикле дергать модели умножать базовую цену на текущий курс и сохранять обновления.
Но как-то не рационально получается: огромное количество запросов к базе данных!
Прошу совета сообщества, есть какие-либо способы обновлять данные моделей более оптимально, с наименьшим обращением к базе данных?
зачем хранить Историю результатов конвертации? достаточно сохранить курс на этот день.
И это правда
а у товара три поля?
Нет, конечно у товара много полей. Указаны только поля касающиеся стоимости
Обсуждают сегодня