Data-Versioning

數據歷史表與使用目前記錄標誌

  • March 26, 2014

處理包含多個版本的數據記錄時有兩種策略。一種是將目前記錄放在一個表中,將它們過去的版本放在歷史表中。

另一種是將所有版本都放在同一個表中,並在目前版本上帶有一個標誌。

我已經看到了每種策略的爭論,並且我看到社區在不同的文章中都同意這兩種策略。

如果沒有正確答案,如何決定採取哪種策略?我可以看到將所有記錄保存在同一個表中以簡化查詢(一個表中的所有記錄)和一般較少表的優勢。

另一方面,您擁有這些巨大的表,其中包含大量記錄,具體取決於表之間有多少版本和復雜的關係。

用於修訂的 Pro 歷史表數據庫設計?數據庫歷史更改,相同或不同的表?

專業目前記錄標誌https://softwareengineering.stackexchange.com/questions/94489/handling-deleted-users-separate-or-same-table

其他文章https://softwareengineering.stackexchange.com/questions/94489/handling-deleted-users-separate-or-same-table

如果我們在數據倉庫場景中明確討論緩慢變化的維度,並且您遵循 Kimball 方法,那麼實際上有超過 2 種不同的方法可以做到這一點。

Kimball 方法有7 種不同的 SCD 記錄方式(向下滾動到連結中的漸變維度技術)。類型 1、2 和 3 顯然是最常見的,我真的不知道有人使用 5、6 或 7。

歷史表是類型 4,是我目前使用的。它使我們能夠盡可能地保持“活動”表的緊湊性。我們很少查詢歷史表,所以當我們需要審計一個維度的歷史時,它們真的就在那裡。此表與任何其他表之間沒有關係,並且它有一個代理 ID 作為主鍵。

我曾在我們使用過 Type 2 的地方工作過,這是 Flag 方法,它會導致 key table 上不必要的大表增長。不過,這只是我的經驗!

引用自:https://dba.stackexchange.com/questions/61815