Steve 数据建模:从选项列表到无限远方
引言:
欢迎来到 Steve 数据建模系列的又一期精彩内容!在这篇博客中,我们将探讨选项列表的多种用法,并讨论在哪些场景下,你可能需要为更高级的数据建模需求考虑替代方案。
理解选项列表
当一个字段需要一组固定的值时,选项列表是理想的选择。它们能提供干净的用户体验,但也有一些局限:
- 添加值需要较高的管理员权限。
- 新的值必须通过沙盒来部署。
如果来自第三方集成的值没有预先添加到 Salesforce 中,就会出现数据验证错误。
探索选项列表的各种方案
下面是一些可以考虑的选项列表方案:
方案 1:全局值集
这是 Salesforce 的标准方案,可以跨对象复用列表。

全局值集最适合在多个地方使用的值。例如,你可以为“管道尺寸”和“管壁厚度”各建一个全局值集,为用户提供一个干净的界面来选择值。
[caption id="" align=“alignnone” width=“1372”]
值集示例 [/caption]
[caption id="" align=“alignnone” width=“1814”]
值示例 [/caption]
[caption id="" align=“alignnone” width=“676”]
从列表中选择 [/caption]
方案 2:文本字段
这就是一个没有验证的文本字段。

如果数据值是通过集成推送过来的,你可能会考虑使用文本字段。不过,这种做法失去了验证,允许用户输入任何数据,可能导致不一致。
如果这些字段在 Salesforce 中是只读的,你只是在显示这些值,这可能是一个可选方案。
[caption id="" align=“alignnone” width=“678”]
没有验证 [/caption]
方案 3:共享的参考对象

可以用一个带多个记录类型的共享参考对象来加载数据。这种做法在主对象上创建两个查找关系,链接到参考对象,而不是保存实际的值。你还可以在没有管理员权限的情况下动态添加新值,提高了灵活性。
[caption id="" align=“alignnone” width=“1462”]
使用记录类型 [/caption]
[caption id="" align=“alignnone” width=“1700”]
使用筛选的查找关系 [/caption]
[caption id="" align=“alignnone” width=“1434”]
添加值 [/caption]
[caption id="" align=“alignnone” width=“658”]
选择一个值时的样子。排序不正确,而且初次加载时不会显示所有值,用户必须去搜索。另外,务必在简档或权限集中去掉“创建”权限,这样用户就不会随手创建更多记录。 [/caption]
第 3 部分:高级方案
对于更高级的场景,可以考虑以下方案:
方案 4:带参考对象的自定义界面

如果你的编辑界面使用的是自定义 Lightning Web 组件(LWC),你可以用一个参考对象来读取并呈现值,同时保存实际的值,而不是查找关系。
方案 5:独立的对象

如果查找值的重要性越来越高,可以考虑为每一种值各建一个独立的对象,并分别创建查找关系。这种做法允许动态添加数据,保持数据模型干净,并且支持在每个对象上增加相关字段。
实际示例
下面是说明每种方案的实际示例:
**标准选项列表:**提供带固定值的干净界面。
**没有验证的文本字段:**提供灵活性,但没有数据验证。
**指向参考对象的查找关系:**使用同一个对象,按记录类型筛选,以获得灵活性。
**独立的对象:**为每个查找关系使用单独的对象,提供干净而灵活的数据模型。
结论
理解选项列表及其替代方案的细微差别,对于有效的数据建模至关重要。从标准选项列表到独立的对象,每种方案都有其独特的好处,能满足特定的数据建模需求。
欢迎再来!
想获得更多见解和技巧,请继续关注 www.SteveTechArc.com 和 YouTube 频道 @SteveTechArc (opens in a new tab)。订阅,和我们一起提升你的数据建模功力!
与架构师同行以及正走在架构师之路上的人分享有趣的想法,一起改变世界!
STA 2.2