【问题标题】:database design: accounts with multi currency数据库设计:多币种账户
【发布时间】:2012-03-04 03:16:11
【问题描述】:

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

设计1)1个账户只能持有1种货币

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

设计1)1个账户只能持有1种货币

ACCOUNT
Id
AccountNumber
CurrencyCode
...

TRANSACTION
Id
AccountId
Amount
...

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

ACCOUNT
Id
AccountNumber
...

TRANSACTION
Id
AccountId
Amount
CurrencyCode
....

【问题讨论】:

  • 什么是 COA,它将如何影响设计的选择?

标签: database database-design


【解决方案1】:

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

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

但存储是您的问题中最简单的部分。您将如何添加涉及多种货币的交易?做到这一点的方法不止一种,“正确”的答案可能不止一种,而且你的会计师可能会因为哪种方式是“正确”的方式而大打出手。

【讨论】:

  • 同上不设计会计软件:\
  • @pheedbaq:我的第一份专业编程工作涉及为一家财富 500 强跨国公司开发软件,以当地货币(“当地”= 地球上一半的货币)计算股东价值。我实际上看到了两个会计师之间的拳头斗争,他们都是副总裁。太棒了。
  • 哈哈,史诗。是的,我似乎没有从我的大学软件设计课本中回忆起任何关于在需求收集阶段如何解决所有专家似乎都不同意的领域专家之间的分歧的建议:\ 似乎甚至说“标准会计实践"会在时空中引起眼泪:(
  • 大声笑,是的,我的意思是“眼泪”,就像在织物上一样,还有哭泣。
  • Neal Stephenson 的巴洛克周期(尤其是“世界体系”)对西欧的货币操纵进行了非常精彩的细节。这是历史小说,但令人惊讶的是,“货币兑换”的概念对社会的影响如此之大。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2011-05-21
      • 2020-05-12
      • 1970-01-01
      • 2014-02-08
      • 1970-01-01
      • 1970-01-01
      • 2013-05-02
      • 1970-01-01
      • 2019-05-23
      相关资源
      最近更新 更多