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)。 –