如何在数据库中管理多种货币
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....)
那你就加入他们吧。
如果我根据公司所在地、员工合同类型和其他标准有不同的多次工资支付: 所以
有些人的薪水分为两部分,第一部分是美元,第二部分是当地货币。
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....)
那你就加入他们吧。