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