如何在数据库中管理多种货币

问题描述 投票:0回答:2

如果我根据公司所在地、员工合同类型和其他标准,有不同的多笔工资支付:所以。


有些人的工资被分成几部分,第一部分是美元,第二部分是当地货币。

Ex: Employee 343 receive his salary as following: 200 USD & 3000 EGP (The local currency).
EX: Employee 672 receive his salary as following: 200 USD & 200 EUR (The local currency).

有些人的工资只用一种货币(当地)。

Ex: Employee 532 receive his salary as following: 5000 EGP.

因此,我们有多种货币的工资的公司根据位置和其他业务规则。

什么是最合适的方式来保存这些变化的员工的工资在DB中,所以,这是很容易检索,处理和规模。

如果我使用一个表,所以我将有许多列,我必须添加新的列,每次一个新的分支机构的公司被启动。

Sal_USD  | Sal_EGP | Sal_Eur

有没有一种优雅的方式来处理这个问题?

sql-server database domain-driven-design currency finance
2个回答
1
投票

正确的方法是始终支持一个无限数量的连接。因此,创建一个表与工资,另一个表与货币。

我认为3个表就可以完成这个工作了b

Employee (the one you have now)
- EmployeeID

Salary
 - SalaryID
 - EmployeeID
 - CurrencyID
 - Wage
 - Exchangerate ?

CurrencyID
 - CurrencyID
 - Name (USD/GDP/EUR....)

然后你只需将它们加入。


1
投票

创建一列CurrencyCode,用2行来表示一个员工的工资用两种货币支付。

© www.soinside.com 2019 - 2024. All rights reserved.