Steve 資料建模:掌握版本控制策略
引言:
在這篇部落格中,我們將探討在資料建模中處理記錄版本的兩種不同方式,為你提供見解和策略,幫助你高效地管理記錄的多個版本及其相關的子記錄。
對於那些在版本控制至關重要的物件模型上工作的設計者來說,這些策略必不可少。
理解記錄版本的處理方式
處理記錄版本主要有兩種方式:
- 對等記錄方式
- 子版本方式
我們來深入瞭解每種方式,理解它們的實現、優點和缺點。
對等記錄方式
在對等記錄方式中,記錄的每個版本都作為頂層物件下一條獨立、平等的記錄來建立。這種方法簡單直接,Salesforce 在商機下實現報價的方式就是一個例子。

實現:
每個版本都是頂層物件下的一條獨立記錄。
你可以把其中一條記錄標為主記錄,但所有版本都會出現在清單檢視、相關清單和報表中。
優點:
- 實現起來簡單直接。
缺點:
- 所有版本都可見,很難把它們區分開。
- 不同版本之間沒有清晰的關聯或稽核軌跡。
如果沒有適當的約束,可能會出現多條主記錄或進行中的記錄。
子版本方式
子版本方式需要建立兩層物件:一個頂層父物件,以及每個版本對應的一個子物件。這種方式能實現乾淨的版本控制和變更日誌系統。

實現:
- 一個頂層物件代表配置,子物件代表每個版本。
- 每個子版本自動遞增編號,並有一個狀態(例如已歸檔、活動、待定)。
- 活動版本被鎖定並用於生產,而草稿版本可以編輯。
- 一個草稿被啟用後,它就成為活動版本,而之前的活動版本會被歸檔。
優點:
- 提供清晰的稽核軌跡和歷史記錄。
- 確保同一時間只有一個活動版本。
- 歸檔的記錄作為未經改動的歷史記錄儲存下來。
缺點:
- 對一些使用者來說可能顯得複雜,但對於 Flow 這樣的重要流程是必要的。
Salesforce 的實現示例

Salesforce 在 Flow 上實現了類似的方式。在 Salesforce 中,有一個頂層的 Flow 物件,下面是子 Flow 版本。每個版本自動遞增編號,為每個 Flow 及其建立和啟用日期提供詳細的歷史記錄。
這種實現確保同一時間只有一個 Flow 處於活動狀態,提供了一種可靠而高效的版本控制機制。
第 5 部分:結論
理解並選擇合適的記錄版本處理方式,在資料建模中至關重要。對等記錄方式簡單,而子版本方式提供更多的控制和高效的稽核軌跡。通過研究 Salesforce 的實現,並考慮你具體的資料建模挑戰,你就可以選出最適合自己需求的方式。
敬請關注!
想獲得更多見解和技巧,請繼續關注 www.SteveTechArc.com 和 YouTube 頻道 @SteveTechArc (opens in a new tab)。訂閱,和我們一起提升你的資料建模功力!
與架構師同行以及正走在架構師之路上的人分享有趣的想法,一起改變世界!
STA 2.1