数据库设计:多种货币的账户

时间:2012-03-04 03:16:12

标签: database database-design

在您的会计软件中,您将如何为COA设计帐户数据库

设计1)1个帐户只能容纳1种货币

设计2)1个账户可以持有多种货币,只需按CurrencyId(美元,英镑等)过滤交易。

设计1)1个帐户只能容纳1种货币

ACCOUNT
Id
AccountNumber
CurrencyCode
...

TRANSACTION
Id
AccountId
Amount
...

设计2)1个账户可以持有多种货币

ACCOUNT
Id
AccountNumber
...

TRANSACTION
Id
AccountId
Amount
CurrencyCode
....

3 个答案:

答案 0 :(得分:6)

首先,我不会设计会计软件。我买了会计是您需要领域专家(即会计师)帮助开发软件的领域之一。

第二,如果您需要接受多种货币,则必须存储货币类型和值。在这样的系统中,借记30是没有意义的。只有30美元或30欧元的借记才有意义。

但存储是您问题中最简单的部分。您打算如何添加涉及多种货币的交易?有多种方法可以做到这一点,可能有不止一个“正确”的答案,你的会计师可能会以“正确”的方式吹嘘。

答案 1 :(得分:3)

您可以使用现有服务作为指南 - 例如,Paypal。

在Paypal中,您必须为每个帐户指定该帐户的基本货币。然后,在应用于帐户之前,任何交易都将转换为该货币。当时应用的原始金额,货币和转换率也可以存储在一起,但是为了进行计算,您将使用基础货币。

答案 2 :(得分:1)

作为一般安全规则,始终采用更灵活的设计。在这个相互关联的世界中,几乎可以肯定会有各种货币的交易(除了当地的汽车引导销售,但我不确定)。因此,将货币代码存储在交易表中。