|
|
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
хочу добавить в базу данных конвертацию валюты: 1) все курсы будем хранить по отношению к евро 2) и пересчитывать в любую выбранную валюту 3) схема такая: 4) норм? нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2015, 23:38 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
mini.weblab, не туда запостила (хотела в проектирование БД), сотрите пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2015, 23:40 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
mini.weblabцель пересчитать данные по странам в выбранную валюту прикручивать будем примерно так: для начала определитесь с постановкой задачи. Я так понимаю сейчас вы изливаете в интернет "поток своего сознания". И сами четко не понимаете чего хотите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 08:16 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
mini.weblabхочу добавить в базу данных конвертацию валюты: 1) все курсы будем хранить по отношению к евро У Вас могут быть проблемы с точностью при расчете кросс-курсов mini.weblab3) схема такая: Не совсем понятно вынесение поля Rate в отдельную таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 08:53 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
mini.weblabцель пересчитать данные по странам в выбранную валюту прикручивать будем примерно так: "Будте проще - к вам потянутся" (с) Карнеги. Много лишнего, таблицу TimeSeries можно сократить, Таблицу Rate тоже. Для ускорения можно в таблице Курсов либо две даты держать, либо курсы иметь всегда на каждый день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 08:57 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
mini.weblab, Делайте через валютные пары. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 09:01 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
Непонятно, какая выгода выносить TimeSeries и CountryTime в отдельные таблицы? Я бы сделал так: country_currency( country , from_date , to_date, currency) currency_rate( currency , from_date , to_date, rate) to_date заполняется автоматически, и not null. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 09:39 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
Гхостик, А нафига две даты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 09:49 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
Неправильно хранить Rate к Евро. Нужно хранить исходные данные так, как публикует их официальный источник: "За 100 тугриков - 33 еврика, за 10 тугриков - 22 бублика", то есть хранить и 100, и 33, и 10, и 22, и тугрики и еврики и бублики. А если хранить коэффициент, то при попытке обменять 100 миллионов тугриков получится не ровно 33 миллиона евриков, а с хвостиком. И будут вопросы. Кроме того, при попытке обмена напрямую бублики на еврики могут быть особые правила - например, считать не через тугрики, а через другую валюту. И вообще, просто "конвертации валюты" в вакууме не бывает. Мультивалютный учет - отдельная песня со своими тараканами. Погуглите "Курсовые валютные и суммовые разницы". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 10:06 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
dma_caviarГхостик, А нафига две даты? если за некоторые даты курсов нет - так быстрее искать нужную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 10:52 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
Ivan Durakdma_caviarГхостик, А нафига две даты? если за некоторые даты курсов нет - так быстрее искать нужную. Так и не надо на конкретную дату искать курс. Ясно что его может не быть. Ищем максимальную имеющуюся дату, которая <= искомой даты, затем ищем курс на эту максимальную дату. Настраиваем индексы и все отлично работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 11:08 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
mini.weblab, Всего 2 таблицы : валюты и курсы валют. Ребята уже сказали - проще нужно быть, а то потом в вашем бардаке никто разбираться не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 11:47 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
dma_caviarТак и не надо на конкретную дату искать курс. Ясно что его может не быть. Ищем максимальную имеющуюся дату, которая <= искомой даты, затем ищем курс на эту максимальную дату. Настраиваем индексы и все отлично работает.Один between и писать гораздо короче, и для СУБД проще выполнять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 11:48 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
Гхостикdma_caviarТак и не надо на конкретную дату искать курс. Ясно что его может не быть. Ищем максимальную имеющуюся дату, которая <= искомой даты, затем ищем курс на эту максимальную дату. Настраиваем индексы и все отлично работает.Один between и писать гораздо короче, и для СУБД проще выполнять. Вставлять новый курс зато дороже, и коллизии в данных возможны. Схема с двумя датами имхо осмысленна для вьюшки, но не для исходной таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 11:58 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
Гхостикdma_caviarТак и не надо на конкретную дату искать курс. Ясно что его может не быть. Ищем максимальную имеющуюся дату, которая <= искомой даты, затем ищем курс на эту максимальную дату. Настраиваем индексы и все отлично работает.Один between и писать гораздо короче, и для СУБД проще выполнять. Представьте, если каждый кодер будет городить в таблице кучу полей чтобы лично ему было проще жить из-за своих сложностей с sql. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 12:01 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
2 Кот Матроскин: Делая две даты во view а не таблице, мы не улучшаем производительность запросов. И, конечно, денормализация имеет свою цену, это и код поддержки правильности дублирования данных, и удорожание модификации данных. И, в данным конкретном случае, я считаю что эта цена не чрезмерна. dma_caviarиз-за своих сложностей с sql.Сложностей с sql нет, но зачем делать сложнее когда можно сделать проще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 12:21 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
Гхостик2 Кот Матроскин: Делая две даты во view а не таблице, мы не улучшаем производительность запросов. Если вьюшка материализованная - то улучшает (тоже возникает удорожание модификаций, конечно - но тут уж либо дудочка, либо кувшинчик) Т.е. любая вьюшка закрывает Ваше "between писать проще" + материализованная закрывает и "для СУБД проще выполнять", если это действительно нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 12:30 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
mini.weblab, слишком сложно, достаточно двух таблиц - справочник валют (ид, код, наименование, страна) таблица: ид, ид валюты1, ид валюты2, дата/время, курс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 12:39 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинГхостик2 Кот Матроскин: Делая две даты во view а не таблице, мы не улучшаем производительность запросов. Если вьюшка материализованная - то улучшает (тоже возникает удорожание модификаций, конечно - но тут уж либо дудочка, либо кувшинчик) Т.е. любая вьюшка закрывает Ваше "between писать проще" + материализованная закрывает и "для СУБД проще выполнять", если это действительно нужно вместо одного поля добавлять цельную мат.вью. !!!!!! Это лажа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 12:55 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
Гхостикно зачем делать сложнее когда можно сделать проще? Сложнее чего, вот этого?)) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. или Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 12:56 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
dma_caviarГхостикно зачем делать сложнее когда можно сделать проще? Сложнее чего, вот этого?)) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Да, этого: Код: sql 1. 2. 3. 4. 5. 6. И когда такие запросы пишутся сотнями для десятка аналогичных таблиц с историческими данными, разница заметна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 13:03 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
Shr, А где код, который обновляет вторую дату? Желательно с контолем на пересечение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 13:05 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
ShrИ когда такие запросы пишутся сотнями для десятка аналогичных таблиц с историческими данными, разница заметна. Каких таблиц... курсы как правило юзаются в виде скалярной функции, типа ПолучитьКурсНаДату и все эти сотни просто юзают эту функцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 13:06 |
|
||
|
конвертация валют
|
|||
|---|---|---|---|
|
#18+
Ivan DurakКот Матроскинпропущено... Если вьюшка материализованная - то улучшает (тоже возникает удорожание модификаций, конечно - но тут уж либо дудочка, либо кувшинчик) Т.е. любая вьюшка закрывает Ваше "between писать проще" + материализованная закрывает и "для СУБД проще выполнять", если это действительно нужно вместо одного поля добавлять цельную мат.вью. !!!!!! Это лажа. Да, вместо одного поля добавить цельную мат.вью. Вопрос "чем это лучше?" - для самостоятельного изучения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2015, 13:10 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=39035481&tid=1540331]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
160ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 488ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...