Выбор способа хранения курса валют

xriby

Новичок
Выбор способа хранения курса валют

Хочу добавить на сайт курс валют с архивом по дате.

Какой способ хранения выбрать из соображения оптимальности?

1. MySQL таблица (id, valuta_id, kurs, data)

2. Текстовый файл для каждой валюты, где каждая строка: (дата курс)

На сайте потребуются следующие данные:
На главной будет выводится текущий курс.
На определенной странице архив курса за неделю, месяц и тд.
 

lart

Guest
MySQL быстрее в написании кода, и выборке архивных данных.
 

A1x

Новичок
надо еще выбрать какую-то валюту как базовую, курс которой считать за 1
Как тогда отслеживать колебания базовой валюты?
 

Dovg

Продвинутый новичок
A1x
Зачем?

Если надо просто показывать курсы, то базовая валюта не нужна.
 

A1x

Новичок
Dovg, гм тогда я наверно не понимаю что такое курсы
можно пример?
 

iceman

говнокодер
защем их хранить, когда можно ходить раз в день на РБК и брать у них, закешировать и выводить у себя на сайте
 

xriby

Новичок
Под базовой "понимается" рубль, т.е. курс валют в рублях.
Если ввести еще одно условие: хранить данные только за последний месяц, то думаю файлах быстрее или все таки в базе.

защем их хранить, когда можно ходить раз в день на РБК и брать у них, закешировать и выводить у себя на сайте
конечно, если отображать только текущий курс, то проблем нет.
Но если нужно получить курс валют, скажем за неделю, месяц и год, то каждый раз обращаться на РБК.
 

A1x

Новичок
в базе конечно. забудь про файлы

-~{}~ 02.08.10 13:05:

курс валют, скажем за неделю, месяц и год,
для файлов придется писать что-то вроде языка запросов по дате, в базе это все уже есть готовое
 

xriby

Новичок
Всем спасибо, за советы.
Выбираю таблицу MySQL с полями от fixxxerа. ;]

-~{}~ 12.08.10 16:28:

Есть таблица: (id, currency_id, rate, date)


Можно ли составить sql запрос который бы сразу вычислял разницу м/у курсами "сегодня и вчера" для каждой даты:

"SELECT `rate`, UNIX_TIMESTAMP(`date`) as date FROM `table` WHERE `currency_id`='USD' ORDER BY `date` DESC LIMIT 0,10 "

Дата___Курс_____Изменение
12.08__30.2050
11.08__30.0239
10.08__29.8186
07.08__29.8300
06.08__29.8600
05.08__29.8000
 

Gas

может по одной?
оно то можно, но с учётом того что всю информацию ты уже получаешь в запросе, лучше это сделать на стороне php

ну а sql'ем как-то так
Код:
SELECT rate, rate - (
    SELECT rate
    FROM `table`   
    WHERE currency_id = t.currency_id AND date < t.date
    ORDER BY date DESC
    LIMIT 1 
  ) AS rate_delta
FROM `table` AS t
ORDER BY `date` DESC
LIMIT 0 , 10
только желательно тогда добавить составной индекс (currency_id, date)
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
SQLite! :) быстрее, чем MySQL, в написании кода, записи, выборке, настройке базы на сервере
 

xriby

Новичок
Gas, спасибо!
grigori, приму к сведению для ближайшего изучения.
 
Сверху