sql - 数据库中的货币兑换

标签 sql database-design currency-exchange-rates

我正在设计一个包含货币汇率的关系数据库。我的第一个直觉是有一个货币表,列出所有货币并将其他所有货币的汇率作为属性。

例如: 货币表

  • id 整数
  • base_currency_code VARCHAR
  • 日期日期
  • 美元十进制
  • 十进制英镑
  • 欧元十进制

我在线搜索了货币兑换表是如何在数据库中实现的,结果我看到的所有地方都有一个表 currency_exchange,其中包含 base_currency、non_base_currency(货币)、汇率和日期列。

由于我找不到与我的类似的实现方式,并且由于我读到的一篇文章说另一个实现方式是他工作的金融公司的完成方式,所以我认为另一个实现方式优于我的!

我只是不明白为什么。有人可以解释为什么另一个更好吗?

最佳答案

你想要这样的表格:

create table Currencies (
    CurrencyId int primary key,
    ISO_Code varchar(3),
    Name varchar(255)
);

create table CurrencyExchangerate (
    CurrencyExchangerateId int primary key,
    FromCurrencyId int not null references Currencies(CurrencyId),
    ToCurrencyId int not null references Currencies(CurrencyId),
    RateDate date not null,
    ExchangeRate decimal(20, 10),
    constraint unq_currencyexchangerate_3 unique (FromCurrencyId, ToCurrencyId, RateDate)
);

关于sql - 数据库中的货币兑换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48252822/

相关文章:

sql - Postgresql > 交叉表查询 > 需要输入

mysql - 为什么 WHERE 子句中具有不同外键的相同 SQL 查询会获得不同的性能?

mysql - 删除 SQL 语法错误

java - 如何在业务流程过程中捕获数据库中实体的状态?

mysql - SQL - 计算给定时期的平均汇率并在选择中使用

php - 使用PHP从数据库中检索多个图像

database - 更新表后如何重建索引?

database-design - "Master"关联表?

php - 使用 XML 提取 XML 中的 ECB 汇率时遇到一些问题..有问题的完整源代码

python - 在Python中根据字典制作图表