1

假设我有像 Employee 这样的数据库表,并且每个员工都有相关的工资。不同时期的工资可能不同。如何设计一个存储这些工资的表格?(“工资期”不能重叠,但此约束不必由数据库处理)

Employee 将不是唯一需要这种日期模式货币数据的表。

我正在考虑一个带有两个主键(一个“wageId”整数和一个日期时间)和一个工资列(整数,按照建议计算便士)的表。Employee(或任何其他)表将有一个引用“wageId”的列“wage”。日期时间将是工资有效的日期。这有任何意义吗?可以改进吗?

我正在使用mysql。

4

1 回答 1

3

这是一个缓慢变化的维度的例子。Ralph Kimball 的书籍是数据库设计的一个很好的参考。

无论如何,您想要的是一个名为EmployeeWage. 这将具有以下列:

  • EmployeeWageId,行的唯一 ID
  • EmployeeId,员工的标识符
  • 工资,工资
  • EffDate,工资生效日期
  • EndDate,工资停止生效的日期。

我还将添加列,例如谁创建了每一行以及确切的时间,但这超出了您的问题范围。

于 2013-05-22T14:33:02.843 回答