當資料有異動 (CUD) 的時候,我會把異動的結果存放在另一張表,稱之為歷程 History 或是快照 Snapshot,讓活動中的資料內容都是有用的,其他的資料表要記錄"當下"的狀態時,則是參考 Snapshot 的資料,例如 Id+Version,這次我要用 JsonDiffPatch 來產生差異資料內容,並且還原出當時的內容,就來看看我怎麼實作。
2024-01-15
當資料有異動 (CUD) 的時候,我會把異動的結果存放在另一張表,稱之為歷程 History 或是快照 Snapshot,讓活動中的資料內容都是有用的,其他的資料表要記錄"當下"的狀態時,則是參考 Snapshot 的資料,例如 Id+Version,這次我要用 JsonDiffPatch 來產生差異資料內容,並且還原出當時的內容,就來看看我怎麼實作。
現在的工作大都是使用微軟內建的 Json 序列化套件 System.Text.Json,為什麼要用可以參考 黑大這一篇,在尋求 Json Compare/Diff 解決方案時大都是看到 Newtonsoft(Json.NET) 的 JsonDiffPatch 做法,經同事分享 System.Text.Json 已經有人實作出來了,知道後立馬套用