我正在设计一个包含货币汇率的关系数据库。我的第一个直觉是有一个货币表,列出所有货币并将其他所有货币的汇率作为属性。
例如: 货币表
- 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/