Есть ТЗ на разработку системы, которая работает с ценами в разных валютах и разными странами. Цены указываются в валюте страны за конкретную дату. В дальнейшем нужна возможность сравнения этих цен и перевода из одной валюты в другую по нынешнему курсу и курсу на дату внесения. Список валют динамический - в любой момент может быть добавлены новые.
Возник вопрос, как хранить цены так, чтобы можно было легко потом производить все эти манипуляции?
Курс валюты всегда указывается относительно другой. Есть ли какой-то универсальный курс для всех валют, на основании которого можно рассчитать "вес" каждой из них? Например, сегодня доллар стоит 5 условных попугаев, а евро - 7. Значит курс доллар/евро - 0,714.
Или придется хранить курс каждой используемой валюты к каждой другой?
Если выбрать какую-то валюту, например евро, и хранить курс валют к нему, будет ли это достоверной цифрой?
Простите за сумбурный текст, не знаю, как по другому лаконично изложить проблему.
Все цены храните в USD
Сделайте парсинг блумберга или своего локального ЦБ и храните данные за сутки (или меньше)
Цену переводите в требуемую на уровне шаблонизатора
Можно ли гарантировать, что есть две валюты изменили свой курс относительно доллара, то их курс относительно друг друга изменится пропорционально?
Например валюта А и валюта В стоят 1$ за единицу. Завтра валюта А выросла в два раза и стала стоить 2$, а валюта В - в 4 раза и стоит 4$. Логично заключить, что теперь 1В = 2А. Может быть такое, что 1В будет стоить, скажем 3А? Т.е. курс относительно друг друга изменится не в таких пропорциях, как общее изменение относительно доллар?
HaruAtari,
нет, нельзя гарантировать
Более того курс на разных ресурсах может существенно отличаться, но не в разы офк
Для надежность можно хранить матрицу с курсами
Основной валютой желательно выбрать ту, в которой вы платите поставщикам и одновременно та, в которой у вас большая часть продаж.
Покупателям желательно не показывать цену, которая может отличаться на 50% - а как мы знаем и не такое возможно
И чтоб не огорчать свое буха - стоит спросить у него, сможет ли он просто работать с валютой
sim3x, Спасибо за ответ!
Собственные расчеты вести не планируется и основной валюты нет. Сервис чисто аналитический.
Наверное буду думать в сторону матрицы: каждая валюта к каждой. Благо при добавлении новой в систему можно спарсить ее курсы за прошлые периоды. Спасибо вам!