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

How to manage multiple currencies in the database

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


有些人的薪水分为两部分,第一部分是美元,第二部分是当地货币。

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.

所以我们根据地点和其他业务规则为公司的工资设置了多种货币。

在数据库中保存具有这些变化的员工薪水的最合适方法是什么,以便易于检索、处理和缩放。

如果我使用一个 table,那么我将有很多列,并且每次为公司启动新分支时我都必须添加新列。 像这样:

Sal_USD  | Sal_EGP | Sal_Eur

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

创建一个 CurrencyCode 列,并为以 2 种货币支付工资的员工使用 2 行。

正确的做法永远是支持无限个连接。因此,用薪水创建一个 table,另一个用货币创建。

我认为 3table 就可以完成工作b

Employee (the one you have now)
- EmployeeID

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

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

那你就加入他们吧。