在我们的应用程序中,我们存储了不同捐助者的多个项目资金,他们以各自的货币插入,例如德国为 EUR,瑞典为 SEK 等。
我们的想法是以一种货币为这些项目提供报告。 我们目前将资金数额及其货币一起存储在如下表中:
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 不是很灵活(我知道它可以,但很麻烦),我认为很酷的是或多或少透明地进行转换,也许使用允许简单的自定义数据类型聚合(使用 sum 和 +/- 等运算符).. 无论如何,我对此完全不确定,所以非常感谢所有评论!
最佳答案
您看过 Martijn van Oosterhout 的标记类型
吗?
关于ruby - PostgreSQL 数据库中的货币转换和聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1652693/