---
schema_version: "1"
id: 44f943a901150f88748a61ad6afcf56f023693947b5e2fceab90ae1b2c887fa1
title: Salesforce 数据模型符号
collection: architect
version: current
locale: zh-cn
portal_url: https://docs.salesforce.com/architect/current/zh-cn/reference-diagrams/guides/data-model-notation.md
canonical_url: https://architect.salesforce.com/docs/architect/zh-cn/reference-diagrams/guide/data-model-notation.html
source_site: architect.salesforce.com
content_type: documentation
content_hash: 1fb24201c85a301364d204971e026e8c1f359ccf0c751fe34f5a18e7ccf739e4
products:
  - 参考图表
  - Architect Site Content Repo
updated_at: 2024-09-15T00:00:00Z
---
## 导言

本文档概述了 Salesforce 实体关系图 (ERD) 符号和约定，以帮助您清楚地解释[数据模型库](https://developer.salesforce.com/docs/platform/data-models/guide/get-started.html)中提供的产品数据模型。

ERD，也称为数据模型，是信息系统的图形表示。它显示了该系统中人员、对象、位置、概念和事件之间的关系。它是传达数据功能结构的逻辑模型。在 Salesforce ERD 中，实体通常映射到 Salesforce 数据库中的对象。

## 实体

实体是有意义的事物或对象，无论是真实的还是概念性的，需要知道或保存这些信息。

<image class="center" src="https://a.sfdcstatic.com/developer-website/prod/images/architect/data-models/sample-entity.png" alt="sample data model entity">

实体在图表中表示为带有圆角的方框。每个实体框通常提供两个标签（如果适用）：

- 实体的逻辑名称（例如，此处所示示例中的“Salesforce 实体”）。这可能对应于表示的 Salesforce 对象的单数标签，但并不总是如此。
- Salesforce 组织中对象的“物理”API 名称或开发人员名称（例如示例中的“_API 名称_”）。对于受管软件包对象，图表中列出的 API 名称通常不包括受管软件包命名空间（例如，“vlocity_ins\*\*”），除非 Salesforce 或 Industry Cloud 使用多个受管软件包。受管软件包对象的 API 名称结尾表示使用的自定义对象的类型：“\*\*c”表示常规自定义对象和自定义设置，“\*\*mdt”表示自定义元数据，“\*\*x”表示外部对象。

实体框也可以列出一个或多个代表该实体属性的属性。属性前面有“#”或“-”字符。

- “#”表示作为实体逻辑唯一键一部分的属性。在示例图表中，“用户密钥属性”被视为实体的用户主键。
- “•”表示非密钥属性。

### 实体格式化

每个实体关系图都从指定云的角度说明了 Salesforce 数据模型，例如 Sales Cloud、Service Cloud 或 Marketing Cloud。图表的配色方案反映了焦点中的云。Financial Service Cloud、Health Cloud 和 Media Cloud 等所有行业云使用相同的行业配色方案。

图表上给定实体的颜色也有特定的含义。焦点云颜色使用其 Salesforce 品牌化颜色表示，包括以下一些示例。

<image class="center" src="https://a.sfdcstatic.com/developer-website/prod/images/architect/data-models/sample-data-model-clouds.png" alt="sample data model clouds">

以下部分将回顾引用以下 Sales Cloud 示例图例的不同实体格式化：

<image class="center" src="https://a.sfdcstatic.com/developer-website/prod/images/architect/data-models/sample-legend-entities.png" alt="sample data model entities legend">

### 云实体

具有焦点云颜色的实体代表该云许可证附带的对象。

### 相关实体

白色填充和黑色边框的实体表示带有不同于 Focus Cloud 的许可证的对象，并且没有通过 Focus Cloud 许可证扩展。例如，显示在 Sales 或 Service Cloud ERD 上的客户和联系人实体将显示为白色，并带有黑色边框，因为这些对象可通过平台许可证获得。

### 扩展相关实体

具有浅灰色填充和黑色边框的实体表示带有不同于焦点云的许可证的对象，但焦点云扩展了该对象。例如，Commerce Cloud 使用其他字段扩展基本 Product2 对象。扩展包括其他字段、关系和记录类型。

### 外部实体

没有边框的实体是虚拟的。在图表中使用时，这些框会确认域的逻辑模型中存在实体，但该实体不会在 Salesforce 中实施为物理对象。此实体的数据预计将通过外部 API 调用或已部署解决方案中的 Salesforce Connect 访问。

### 记录类型实体

带有虚线边框的实体在 Salesforce 中建模为记录类型。在此处显示的示例中，公司客户、开单客户、消费者客户和服务客户子类型有一个虚线边框，因为它们映射到通过 Communications Cloud 受管软件包交付的记录类型。

<image class="center" src="https://a.sfdcstatic.com/developer-website/prod/images/architect/data-models/sample-record-type.png" alt="sample data model record type notation">

### 概念实体

带有虚线边框的实体是虚拟的。记录类型和单独对象都不用于在 Salesforce 解决方案中区分这些子类型。这些子类型在逻辑上描述了域中的概念，有助于说明数据模型的功能。

### 超类型和子类型实体

实体的子类型是它发生的子集的定义。当在超类型实体中添加一组子类型时，超类型实体描述了公共属性和关系，而子类型实体显示了特定于子类型的属性和关系。在图表符号中，子类型是互斥的，这意味着任何单个记录必须是单个子类型。

<image class="center" src="https://a.sfdcstatic.com/developer-website/prod/images/architect/data-models/sample-subtype-relationships.png" alt="sample subtype relationships">

子类型可以有嵌套的子类型来进一步区分发生的情况。图表中的子类型是逻辑的，但它们可以通过三种方式之一映射到物理表示。子类型实体边框的稳固性定义了如何在 Salesforce 数据模型中实施子类型。

<image class="center" src="https://a.sfdcstatic.com/developer-website/prod/images/architect/data-models/sample-supertype.png" alt="sample supertype">

具有实心边框的子类型实体具有跟踪该子类型发生情况的实际对象。在此处显示的示例中，联系人的外部用户子类型有一个实心边框，因为注册为外部用户的联系人被用户对象中的记录跟踪。

<image class="center" src="https://a.sfdcstatic.com/developer-website/prod/images/architect/data-models/sample-contact-subtype.png" alt="sample subtype contact object">

## 关系

关系是两个实体之间的命名重要关联。

<image class="center" src="https://a.sfdcstatic.com/developer-website/prod/images/architect/data-models/sample-relationships.png" alt="sample relationships">

行上或行周围的标记和文本描述了关系的基本性质、可选性和含义。

### 关系基数

<image class="center" src="https://a.sfdcstatic.com/developer-website/prod/images/architect/data-models/sample-legend-relationships.png" alt="sample relationships legend">

基数表示关系每一侧的相对发生次数。在批注中，关系线的结尾表示该结尾的关系基数。一端的乌鸦脚表示该端的许多实体事件可能与另一端的每个事件相关。一端缺少乌鸦脚表示该端最多有一个实体事件可以与另一端的给定事件相关。

### 父子关系

Salesforce 支持两种[关系字段](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/field_types.htm#i1435823)：查找字段和父-子字段（也称为主-详细信息）。父子字段类似于必填查找，但它们在相关实体之间应用额外的耦合。当父级记录被删除时，关系的许多方面的记录将被级联删除。此外，详细信息记录的可见性由父记录的可见性控制。

为了说明子-父关系和查找关系之间的差异，Salesforce ERD 从 UML 借用了菱形符号。关系的单数侧上的菱形表示该侧的实体在关系中扮演主角色。这种关系的许多方面的实体是详细信息实体或子实体，可以视为包含在父实体中。

### 关系可选性

可选性表示关系是否是两端发生的必需项。作为一个概念，可选性与基数密切相关，并且注释反映了这种接近性。可选性在关系的两端通过关系另一端线上的圆圈或条形来表示。为什么在关系的另一端？将可选性标记包含在行与基数相同的一侧。

在关系的多个（即乌鸦脚）方面，线上几乎总是有一个圆圈。这意味着，对于关系的奇数侧上的每次发生，关系的多侧上都可以有零对多的发生。

在关系的单数侧，圆圈和条形图表示该关系中乌鸦脚侧实体的可选关系。圆圈和条形图表示，对于多个边的每个发生，关系的单数边可以有零个或一个发生。

或者，在关系的单数侧，双竖线表示实体在关系的多个侧上的必填关系。双竖线表示，对于多个边的每次发生，关系中的单数边必须有一个且只有一个发生。

关系的可选性可能会根据需要显示，即使 Salesforce 中的基础物理关系是可选的。例如，联系人上的 AccountId 字段在物理上是可选关系，但是如果您忽略专用联系人，联系人与客户的直接关系在逻辑上是必需的。可选性指示符的使用要谨慎。在大多数情况下，ERD 中显示的可选性反映了关系的潜在可选性。

### 关系含义

<image class="center" src="https://a.sfdcstatic.com/developer-website/prod/images/architect/data-models/sample-relationships-meaning.png" alt="sample relationships meaning">

除了基数和可选性之外，两个实体之间的每个关系都表达了某种意义，它将这种关系与相同两个实体之间的其他关系区分开来。关系结束名称，例如上图中的“part of”（部分）和“mades”（组成），定义了关系的性质。

<image class="center" src="https://a.sfdcstatic.com/developer-website/prod/images/architect/data-models/sample-relationships-meaning-2.png" alt="sample relationships meaning">

当您组合关系的基数、可选性和结束名称时，它们可用于形成描述关系的句子。

从左到右：每个<first entity>（可能/必须）是 <end name 1>（一个且只有一个/一个或多个）<second entity>。

从右向左：每个<second entity>（可能/必须）是 <end name 2>（一个且只有一个/一个或多个）<first entity>。

例如，

<image class="center" src="https://a.sfdcstatic.com/developer-website/prod/images/architect/data-models/sample-relationships-meaning-3.png" alt="sample relationships meaning">

从左到右：“每个联系人必须主要是一个且只有一个客户的联系人。”从右向左：“每个客户可以主要由一个或多个联系人代表。”

### 关系颜色编码

关系线使用颜色编码。由云为图表添加的焦点关系以颜色绘制。黑线代表与焦点云不同的许可证关系。

<image class="center" src="https://a.sfdcstatic.com/developer-website/prod/images/architect/data-models/sample-relationships-color.png" alt="sample relationships color">

### 递归关系

关系可以是同一实体的两次发生之间的关系。这称为递归关系。曲线关系线用于表示递归关系。

<image class="center" src="https://a.sfdcstatic.com/developer-website/prod/images/architect/data-models/sample-relationships-recursive.png" alt="sample recursive relationships">

### 相互排斥的关系

<image class="center" src="https://a.sfdcstatic.com/developer-website/prod/images/architect/data-models/sample-relationships-mutual-exclusive.png" alt="sample mutual exclusive relationships">

Salesforce ERD 通常排除大部分业务规则，以关注数据模型的结构，但相互排斥的关系是对结构提供信息的一种业务规则，因此请注意。相互排斥的关系表示，对于任何给定的事件，仅会使用包含在弧中的几种关系中的一种。请注意，两个、三个或更多关系可以参与相同的互斥关系。描述此处显示的互斥关系的句子可以是：“每个实体可以是一个且只有一个第一个其他实体的实例，或者是一个且只有一个第二个其他实体的实例。”

<image class="center" src="https://a.sfdcstatic.com/developer-website/prod/images/architect/data-models/sample-relationships-mutual-exclusive-2.png" alt="sample mutual exclusive relationships">

请注意，在 Salesforce ERD 中，穿过弧线的断开关系线不是相互排斥关系的一部分。

## 布局约定

Salesforce 官方产品 ERD 遵循布局约定，以提高可读性。这些布局约定包含以下内容：

- 关系线应始终为直线。
- 关系线应垂直或水平绘制。在极少数情况下，如果做不到这一点，请在对角线上使用直线。
- 为了保持关系线直线，实体框可以调整大小（变高或变宽），以便为两个实体之间的关系提供登录位置。更重要的实体（有更多关系登录它们）在图表上显示得更大，从而强调了它们的重要性。
- 在整个 ERD 中，乌鸦在关系上的脚应始终在关系线的左侧和/或顶部（上下颠倒布局）- 或始终在关系线的右侧和/或底部（上下颠倒布局）。这种约定提供了清晰度，因为它导致类似的实体聚集在图表的相同区域中，这有助于理解实体。使用颠倒布局的确会导致图表颠倒显示，子实体位于父实体的上方或左侧，但是，这可以确保图表中最具体的实体位于图表的左上角，这使得图表更容易相互区分和识别。使用右侧向上布局约定会导致相同的公共实体位于每个图表的左上角，但子实体将位于父实体的下方或右侧。

严格遵守这些布局约定会生成简洁易读的图表。

请确保查看[数据模型库](https://developer.salesforce.com/docs/platform/data-models/guide)，了解符合此标准的最新 Salesforce 数据模型。
