货币,汇率,如何建立适当的关系?

jogvjijk  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(365)

我有多种货币(它们不是真的)和它们之间的汇率。e、 g.货币a,货币b,1.5如果我需要交换a->b,我只需将值乘以1.5,或者如果我需要交换b->a,我将值除以1.5。如何在数据库中正确地表达这一点?

a11xaf1n

a11xaf1n1#

这种方法是一种m:m方法,只是两边都引用同一个父表。pk保持不变,但每个pk也应该是fk。示例布局可能类似于:

create table currency ( 
             id_currency serial 
           , code        text
           , name        text
           , constraint  currency_pk
                         primary key (id_currency)
           , constraint  currency_bk 
                         unique (code)
           ) ; 
create table currency_conversion(
             from_currency integer 
           , to_currency   integer
           , rate          number(9,5)
           , constraint    currency_conversion_pk
                           primary key (from_currency,to_currency)
           , constraint    from_conversion_2_currency_fk
                           foreign key (from_currency)
                           references currency(id_currency)
           , constraint    to_conversion_2_currency_fk
                           foreign key (to_currency)
                           references currency(id_currency)
          );
093gszye

093gszye2#

您只需要有一个转换表,其中有两列作为转换因子:

from_currency  to_currency    rate     
      A            B          1.5
      B            A          0.66667

在这种方法中,速率是乘法的,并且两个速率对都被存储。这应该使它易于使用。
为了提高性能,您需要在 (from_currency, to_currency) .

相关问题