由 AI 翻译,尚未经过社区审校。 阅读英文版

博客 · 2023年9月8日 · Steve Simpson · 数据架构

Steve 数据建模:掌握版本控制策略

引言:

在这篇博客中,我们将探讨在数据建模中处理记录版本的两种不同方式,为你提供见解和策略,帮助你高效地管理记录的多个版本及其相关的子记录。

对于那些在版本控制至关重要的对象模型上工作的设计者来说,这些策略必不可少。

理解记录版本的处理方式

处理记录版本主要有两种方式:

  1. 对等记录方式
  2. 子版本方式

我们来深入了解每种方式,理解它们的实现、优点和缺点。

对等记录方式

在对等记录方式中,记录的每个版本都作为顶层对象下一条独立、平等的记录来创建。这种方法简单直接,Salesforce 在业务机会下实现报价的方式就是一个例子。

方案 1,对等记录:每个版本都是业务机会下一个独立的报价。优点:模型简单。缺点:每个版本都会出现在列表视图和报表中,记录之间没有清晰的关联,而且可能同时有多个处于活动或草稿状态

实现:

每个版本都是顶层对象下的一条独立记录。

你可以把其中一条记录标为主记录,但所有版本都会出现在列表视图、相关列表和报表中。

优点:

缺点:

如果没有适当的约束,可能会出现多条主记录或进行中的记录。

子版本方式

子版本方式需要创建两层对象:一个顶层父对象,以及每个版本对应的一个子对象。这种方式能实现干净的版本控制和变更日志系统。

方案 2,子版本:一个 Configuration 父对象,下面是 Configuration Version 子对象及其各自的子对象。优点:清晰的版本控制和变更历史,只有一个活动版本,归档的版本不能被修改。缺点:模型更复杂,而且必须强制执行状态规则

实现:

  1. 一个顶层对象代表配置,子对象代表每个版本。
  2. 每个子版本自动递增编号,并有一个状态(例如已归档、活动、待定)。
  3. 活动版本被锁定并用于生产,而草稿版本可以编辑。
  4. 一个草稿被激活后,它就成为活动版本,而之前的活动版本会被归档。

优点:

缺点:

Salesforce 的实现示例

截图:一个 Salesforce Flow 的详细信息页面,显示它的 Flow 版本列表,其中一个为活动版本

Salesforce 在 Flow 上实现了类似的方式。在 Salesforce 中,有一个顶层的 Flow 对象,下面是子 Flow 版本。每个版本自动递增编号,为每个 Flow 及其创建和激活日期提供详细的历史记录。

这种实现确保同一时间只有一个 Flow 处于活动状态,提供了一种可靠而高效的版本控制机制。

第 5 部分:结论

理解并选择合适的记录版本处理方式,在数据建模中至关重要。对等记录方式简单,而子版本方式提供更多的控制和高效的审计轨迹。通过研究 Salesforce 的实现,并考虑你具体的数据建模挑战,你就可以选出最适合自己需求的方式。

敬请关注!

想获得更多见解和技巧,请继续关注 www.SteveTechArc.com 和 YouTube 频道 @SteveTechArc (opens in a new tab)。订阅,和我们一起提升你的数据建模功力!

与架构师同行以及正走在架构师之路上的人分享有趣的想法,一起改变世界!

转录借助了 AI

STA 2.1