假设我有像Employee这样的数据库表,并且每个员工都有相关的工资。工资在不同时期可能会有所不同。如何设计存储这些工资的表格? (“工资期”不能重叠,但这种约束不必由数据库处理)
员工不会是唯一需要这种日期模式货币数据的表。
我在考虑一个有两个主键的表(一个“wageId”整数和一个日期时间)和一个工资列(整数,按照建议计算便士)。员工(或任何其他)表将具有引用“wageId”的列“工资”。日期时间是工资有效的日期。这有任何意义吗?可以改进吗?
我正在使用mysql。
答案 0 :(得分:2)
这是一个缓慢变化的维度的例子。关于数据库设计的一个很好的参考是Ralph Kimball的书籍。
在任何情况下,你想要的是一个名为EmployeeWage
的表。这将有如下列:
我还会添加列,例如谁创建了每一行和确切的时间,但这超出了你的问题的范围。