0
我正在创建我认为将SQL中的2个新表。这个想法是一个是“实时”数据,另一个是保持所有变化。日期为DD/MM/YYYY格式。关于某个时间点的报告
Active
ID | Name | State Date | End Date
1 Zac 1/1/2016 -
2 John 1/5/2016 -
3 Sam 1/6/2016 -
4 Joel 1/7/2016 -
Changes
CID | UID | Name | Start Date | End Date
1 1 Zac 1/1/2016 -
2 4 Joel 1/1/2016 -
3 4 Joel - 1/4/2016
4 2 John 1/5/2016 -
5 3 Sam 1/6/2016 -
6 4 Joel 1/7/2016 -
在上述情况下,你可以看到,乔尔从2016年1月1日一直工作到2016年1月4日,了3个月关闭,然后从2016年1月7日的工作。
我需要建立一个查询,我可以在那里及时选择一个日期并报告当时谁在工作。上表仅列出名称,但在某个时间点上还会有更多列进行报告。
什么是最好的方式来构建表,以便能够实现此查询。
这里是关于不同的渐变维度的好文章SCD类型和结构可能会根据其他用途和要求将其保存在同一张表中,从而简化您的生活。 https://en.wikipedia.org/wiki/Slowly_changing_dimension – Matt
将有一个阅读。谢谢! – Zac
您所选择的DBMS可能对此类任务有一些内置支持。例如,SQL Server 2016实现了[Temporal tables](https://msdn.microsoft.com/en-us/library/dn935015.aspx)。 –