В нашем приложении мы храним несколько проектных фондов различных доноров, которые они вводят в соответствующей валюте, например, в евро для Германии, в шведских кронах и т. Д.
Идея состоит в том, чтобы предоставлять отчеты по этим проектам в одной валюте... В настоящее время мы храним сумму финансирования вместе с его валютой в следующей таблице:
development=> \d funding_forecasts
Table "public.funding_forecasts"
Column | Type | Modifiers
-------------+------------------------+----------------------------------------------------------------
id | integer | not null default nextval('funding_forecasts_id_seq'::regclass)
project_id | integer |
year | integer |
currency | character varying(255) |
payments | integer |
commitments | integer |
Кроме того, у нас есть таблица exchange_rates, в которой хранятся курсы обмена базовой валюты к конкретной валюте для каждого из них.год.
Теперь проблема в том, что когда мы создаем отчеты, нам нужно запросить множество таблиц финансирования для каждого проекта и, таким образом, получить огромное количество запросов + многочисленные конвертации валют и агрегации на стороне приложения..
То, что я думаю, было бы здорово, потому что Rails не очень гибок с пользовательским SQL (я знаю, что это может быть, но это хлопотно), чтобы сделать преобразование более или менее прозрачным, возможно, используя пользовательские данныетип, который позволяет легко агрегировать (используя суммы и +/- етк. операторы) .. Я все равно не уверен в этом, так что все комментарии очень ценятся!