Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Цена товара в разных валютах


Автор: taral 5.2.2009, 15:40
Здравствуйте. Возникла такая задача.
Есть таблица. Для примера с 2-я товарами.
id   vauta  cost title
1     ru        10  штаны
2     usd      3    шапка

Перевести цены в одну валюту в базе и хранить нельзя, поскольку курс меняется постоянно.
Вывести товары с их ценой в нужной валюте не проблема. Если мы знаем курс (а мы его знаем).
Но нужно еще сортировка по цене.
mysql отсортирует по ячейке cost и результат будет
id   vauta  cost title
2     usd      3    шапка
1     ru        10  штаны
Потом при выводе я перевожу цены в доллары (для примера)
И пользователь увидит
3       шапка
0.02  штаны
Потому такая сортировка не подойдет.
Пока что у меня 2 варианта решения.
  Создать еще ячейку (sort) в которой хранить цену товара в одной валюте и по ней производить сортировку.
  Недостаток что при смене курса, валентность сортировки будет страдать, потому ячейку (sort) сортировки нужно периодически обновлять.
  Я думал когда же ее обновлять. Решил что при просмотре подробнее товара.
Второй вариант. Пришел в голову когда писал вопрос. Но пока что он абстрактный и я не уверен что осуществимый=)
Для хранения  курса валюты используется таблица
id kurs valuta
Делаем второй запрос. В нем связываем таблицу товара с таблицей валют (гипотетически мы к каждому узнаем курс его валюты) умножаем цену товара на курс валюты и сортируем по этому. Вот. Поидее все должно сработать.
Хотелось бы услышать мнения, советы, замечания или решения. Я придерживаюсь мнения что одна голова хорошо но много лучше=)

Автор: taral 5.2.2009, 16:07
Есть! Способ сработал! Вопрос решен!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)