0

我正在尝试为货币兑换创建数据库模式。我想每 30 秒获得一次有关各种货币的信息。这是我想到的模式。

Column                      SQL Type
FROMCURRENCY (PK)           varchar
TOCURRENCY (PK)             varchar
BUYRATE                     money
SELLRATE                    money
DATEANDTIME                 timestamp

所有信息都在一张表中。我的模式设计是否正确?关于我需要改变什么的任何建议?

4

2 回答 2

3

由于您所针对的国家和金融市场,设计货币兑换模块需要更多信息。
例如,在一些货币兑换受中央银行监管的国家/地区,Rate-Types 将得到更多扩展,例如特定兑换类型将有一个兑换率(除了卖出汇率和买入汇率)。在设计之前需要研究业务卷。
同样在您的设计中(在一个夸张的示例中),有 200 种活动货币,用户每天必须进行 200 * 200 次数据输入!

顺便说一句
,我认为您需要定义一些表::
Currency_Table用于货币定义的货币表,名称,swift-code,...等详细信息(显示可以接受的精度并将在计算时应用于货币并应用四舍五入
在 Currency-Exchange 上下文中(至少我已经研究过),有一个名为Base-Currency的基本概念,它通常是您的应用程序定制的国家/地区的货币(某些应用程序使用美元作为嵌入式基础货币)。
Base-Currency 是表中定义的具有特定属性的货币。基础货币将是所有汇率比较和计算的根元素。

Rate_Type_Table: 包含 Sell,Buy, Conversion , ... 汇率类型(如果只有卖出和买入,您可以忽略该表,只需在汇率表中添加两列,就像您对问题所做的那样)

Daily_Rate-Table:每日数据条目以进行交换汇率

ID (PK)
Currency_Key(FK of Currency Table)
Rate_Type_Key(FK of Rate_Type Table)
Amount (decimal)
Date

表中的任何记录都将显示与基础货币中的一个块相比的货币价值。
对于货币对货币的汇率,您需要计算从源货币到基础货币,然后从基础货币到目标货币。
四舍五入将是 Exchange 模块设计和实施的关键。

于 2013-07-20T08:54:07.073 回答
1

请注意:

  1. 有关于货币格式的ISO_4217 。请注意,货币在点之后有不同的可能数字。优选的存储格式是整数,对应货币最小除法的计数。
  2. Excange是金融交易。查看例如MTGox 公共 api。我认为它包含您希望在表中拥有的交易的确切信息。最小值为:transaction_id,currency1金额,currency2金额,兑换方向,customer_id,merchant_id,timestamp
于 2013-07-21T10:43:44.920 回答