slavamakhotkin
Новичок
Мультивалютность: хранить ли курс валют или сразу пересчитанное значение
Здравствуйте.
Подскажите, пожалуйста, с принципом.
На сайте можно заказывать услуги. Выбранные услуги оформляются в заказ. Стоимости услуг в базе указаны в рублях. К каждому заказу привязано еще две валюты: валюта заказа (выбранная клиентом) и доллары. В долларах выводится только общая сумма заказа в списке заказов.
Суть в том, что до оплаты цены в валюте не фиксированы и при изменении курса должны пересчитываться. То есть для каждой заказанной услуги надо обновить стоимость в валюте заказа и надо обновить общую стоимость в валюте и в долларах. Что касается общей стоимости, то нельзя сразу конвертировать стоимость в рублях, так как будут погрешности между получившимся числом и суммой услуг.
Я вижу два варианта решения.
1. Для того, чтобы пересчитать общую стоимость заказа, мне надо взять цены в рублях заказанных услуг, конвертнуть в две валюты, записать обновленные значения стоимостей услуг и, сложив, получить общую стоимость заказа в валюте заказа и долларах. Это будет происходить раз в день, количество запросов = около 20 * n, где n со временем увеличивается на несколько единиц в день. Зато при выводе на экран информации о заказе мне достаточно только выбрать цену в нужной валюте.
2. Хранить только курс валюты и при выводе на экран каждый раз точно также выбирать цены в рублях, конвертировать, но выводить на экран.
Какой вариант предпочесть или можно решить лучше?
Здравствуйте.
Подскажите, пожалуйста, с принципом.
На сайте можно заказывать услуги. Выбранные услуги оформляются в заказ. Стоимости услуг в базе указаны в рублях. К каждому заказу привязано еще две валюты: валюта заказа (выбранная клиентом) и доллары. В долларах выводится только общая сумма заказа в списке заказов.
Суть в том, что до оплаты цены в валюте не фиксированы и при изменении курса должны пересчитываться. То есть для каждой заказанной услуги надо обновить стоимость в валюте заказа и надо обновить общую стоимость в валюте и в долларах. Что касается общей стоимости, то нельзя сразу конвертировать стоимость в рублях, так как будут погрешности между получившимся числом и суммой услуг.
Я вижу два варианта решения.
1. Для того, чтобы пересчитать общую стоимость заказа, мне надо взять цены в рублях заказанных услуг, конвертнуть в две валюты, записать обновленные значения стоимостей услуг и, сложив, получить общую стоимость заказа в валюте заказа и долларах. Это будет происходить раз в день, количество запросов = около 20 * n, где n со временем увеличивается на несколько единиц в день. Зато при выводе на экран информации о заказе мне достаточно только выбрать цену в нужной валюте.
2. Хранить только курс валюты и при выводе на экран каждый раз точно также выбирать цены в рублях, конвертировать, но выводить на экран.
Какой вариант предпочесть или можно решить лучше?
