Salesforce的对象关系
对象关系
Salesforce中的对象关系和一般的关系数据库不同。
在关系数据库中对象间的关系是由主键、外键等加以定义。而在Salesforce中,对象之间的关系是由自定义字段来确定。
这么做的原因是Salesforce本身是实现了多租户的架构(Multi-tenancy),在内部将不同客户的数据统一存放。
在新建自定义字段的时候,选择“查找关系”(Lookup)或“主-详细信息关系”(Master-detail)即可创建对象间的关系。
查找关系
Salesforce中对于“查找关系”的说明是:
创建一个将此对象链接到另一对象的关系。关系字段允许用户单击查找图标,以从弹出列表中选择值。另一对象是列表中值的源。
举个例子:每个客户(Account)都有联系人(Contact),那么“客户”和“联系人”两个对象之间就有了查找关系。每个“联系人”对象中都有“客户名”字段,作为“查找关系”。

建立查找关系
下面举个例子说明如何建立查找关系。假设系统中有了一个“地址”的自定义对象,现在要为“地址”和“客户”建立查找关系。
- 进入设置界面。查找“对象”,点击“创建”菜单下的“对象”链接,再在页面中点击“地址”进入“地址”的字段页面。点击“自定义字段和关系”部分的“新建”按钮,进入“新建自定义字段”页面

- 在第一步“选择字段类型”的页面,选择“查找关系”

- 在第二步“选择相关对象”中,从下拉列表中选择另一个相关对象。在这里选择“客户”

- 在第三步“输入查找字段的标签和名称”中,设置此查找关系字段的基本属性。这些名称会显示在“地址”的页面布局中。也可以设置“筛选器”来对此字段添加一些规则,比如只能查找符合特定筛选条件的客户

接下来的步骤和建立普通自定义字段类似,设置字段的安全性和页面布局。在页面布局方面,系统会要求用户分别设置该查找关系所包含的两个对象的页面布局,即“客户”和“地址”的页面布局
最后保存即可。这样,在“地址”的字段页面,可以看到“客户”的查找关系字段已经建立了

在“客户”的详细信息页面,可以看到已经有了“地址”的相关列表。

当新建“地址”对象时,“客户”的字段显示为右边有放大镜图标的输入框,点击放大镜图标即可搜索系统中所有的“客户”,然后选择一个作为此“地址”对象的“客户”。如果之前在第4步设置了筛选器,则搜索的结果中只会出现符合筛选条件的客户。

主-详细信息关系
如果两个对象之间有很强的联系,一个对象必须依赖另一个对象而存在,那么它们之间便形成了“主-详细信息关系”。
Salesforce中对于“主-详细信息关系”的描述是:
创建一个此对象(子级或"详细信息")与另一对象(父级或"主")之间的特殊父子关系类型,其中:
- 所有详细信息记录的关系字段必填。
- 详细信息记录的所有权和共享由主记录确定。
- 当用户删除主记录时,将删除所有详细信息记录。
- 您可以在主记录上创建累计汇总字段以汇总详细信息记录。
关系字段允许用户单击查找图标,以从弹出列表中选择值。主对象是列表中值的源。
建立主-详细信息关系
举个例子说明如何建立主-详细信息关系。假设系统中有了“地址”和“街道”两个自定义对象,现在要为“地址”和“街道”建立主-详细信息关系。
- 进入“街道”对象的“新建自定义字段”页面。在第一步选择“主-详细信息关系”类型

- 在第二步“选择相关对象”中,从下拉列表中选择另一个相关对象。在这里选择“地址”

- 在第三步“输入查找字段的标签和名称”中,设置此查找关系字段的基本属性。这些名称会显示在“街道”的页面布局中。也可以设置“筛选器”来对此字段添加一些规则

接下来的步骤和建立普通自定义字段类似,设置字段的安全性和页面布局。在页面布局方面,系统会要求用户分别设置该关系所包含的两个对象的页面布局,即“街道”和“地址”的页面布局
最后保存即可。这样,在“街道”的字段页面,可以看到“客户”的查找关系字段已经建立了

当系统中建立了一个测试的地址对象时,进入此对象的详细信息页面,可以看到有“街道”的相关列表,也可以在此添加编辑“街道”对象。

利用主-详细信息关系建立多对多关系
两个对象之间可以建立多对多的关系。
要建立多对多的关系,除了两个已经存在的对象,还需要建立一个连接的对象。
在连接的对象中,建立两个“主-详细信息”关系字段,将两个需要多对多的对象分别作为主对象即可。
查找关系和主-详细信息关系的主要不同点
- 查找关系是松散的,两个具有查找关系的对象不依赖对方存在。而主-详细信息关系中,作为详细信息的对象是不能脱离主对象单独存在的,主对象的某条数据记录被删除时,属于它的详细信息对象的数据记录也会被删除,类似于关系数据库的级联删除
- 形成查找关系的两个对象分别有自己的分享权限。而作为详细信息对象,它的分享权限继承自主对象,无法单独建立
方案生成器(Schema Builder)
方案生成器是Salesforce提供的一个视图化界面,直观地展现了系统中各对象的属性和关系。在这里也可以快速地对系统中的对象进行浏览和修改。
在设置主菜单中找到“方案生成器”,点击链接即可进入。

方案生成器界面介绍
在方案生成器的界面左侧是系统中的对象列表。当用户勾选了某些对象,相应的详细信息便会显示在右侧的内容区域。
在右侧的内容区域,每个对象都显示为一个方框,里面包含了字段信息。在方框的右上角有齿轮图标,点击之后可以更改此对象的显示方式。
方框之间有连线,代表了对象之间的不同关系。


在右侧内容区域的右下方,有整个内容区域的缩略图,每个方框分别代表了一个对象。点击缩略图即可定位到内容区域对应的地方。
新建对象或字段
在方案生成器界面的左侧边栏,点击“元素”标签,然后将“对象”拖拽到内容区域空白处,即可新建对象。


将某个“字段”拖拽到内容区域某个对象内,即可在此对象中新建相应类型的字段。

删除对象或字段
在方案生成器界面的内容部分,可以删除自定义对象。
在自定义对象方框的右上角,点击齿轮图标,会显示一个菜单,除了可以更改对象的显示方式,还有“删除对象...”的链接。点击即可删除此对象。

如果想删除自定义字段,则在自定义字段上单击右键,在弹出的菜单中选择“删除字段...”即可。

Salesforce的对象关系的更多相关文章
- Salesforce 外部对象
外部对象(External Object) 在Salesforce中,管理员或开发者可以通过"外部对象"将其他系统中的数据虚拟地展现为Salesforce的对象.每个外部对象都要连 ...
- 死去活来,而不变质:Domain Model(领域模型) 和 EntityFramework 如何正确进行对象关系映射?
写在前面 阅读目录: 设计误区 数据库已死 枚举映射 关联映射 后记 在上一篇<一缕阳光:DDD(领域驱动设计)应对具体业务场景,如何聚焦 Domain Model(领域模型)?>博文中, ...
- 解析大型.NET ERP系统数据访问 对象关系映射框架LLBL Gen Pro
LLBL Gen Pro是一个为.NET开发人员设计的的对象关系映射(ORM)框架,与NHibernate,Entity Framework等框架一样,通过实体与数据表的映射,实现关系数据库持久化. ...
- Hibernate(开放源代码的对象关系映射框架)
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自 ...
- ORM即 对象-关系映射(转自:微冷的雨)
ORM即 对象-关系映射: 将数据库中的数据关系表,映射为实体对象. 灵动思绪EF(Entity FrameWork) 作者: 微冷的雨 来源: 博客园 发布时间: 2013-01-22 16:2 ...
- LLBL Gen Pro 4.2 Lite 免费的对象关系映射开发框架与工具
LLBL Gen Pro是一款优秀的对象关系映射开发框架,自2003年发布以来,一直有广泛的客户群.LLBL Gen Pro有几个标志性的版本,2.5/2.6是一个很稳定的版本,公司的一些旧的项目仍然 ...
- hibernate(四)__由表逆向创建Domain对象和对象关系映射文件
之前我们是手写Domain对象和对象关系映射文件->然后生成数据库中的Table. 现在我们反过来先在数据库中建好Table->然后用工具生成Domain对象和对象关系映射文件. 步骤: ...
- 对象关系映射ORM
对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效 ...
- Hibernate入门5持久化对象关系和批量处理技术
Hibernate入门5持久化对象关系和批量处理技术 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv 前言: 前面学习了Hiberna ...
随机推荐
- asp.net core系列 60 Ocelot 构建服务认证示例
一.概述 在Ocelot中,为了保护下游api资源,用户访问时需要进行认证鉴权,这需要在Ocelot 网关中添加认证服务.添加认证后,ReRoutes路由会进行身份验证,并使用Ocelot的基于声明的 ...
- Windows核心编程第二章,字符串的表示以及宽窄字符的转换
目录 Windows核心编程,字符串的表示以及宽窄字符的转换 1.字符集 1.1.双字节字符集DBCS 1.2 Unicode字符集 1.3 UTF-8编码 1.4 UTF - 32编码. 1.5 U ...
- docker(1)应用场景以及安装
今年来了新公司,公司没有用什么新技术,架构就简单的前后分离,但是我推一下新的技术,在这基础上我要培训一下同事,让他们能接受,对新技术不感到陌生,并且认可愿意去学习.其实在这个过程中也能让他们认同我这个 ...
- 基于html5 plus + Mui 移动App开发(三)-食全库
食全库-食品安全知识库. 食品安全(food safety)指食品无毒.无害,符合应当有的营养要求,对人体健康不造成任何急性.亚急性或者慢性危害.根据倍诺食品安全定义,食品安全是“食物中有毒.有害物质 ...
- Android Service与Activity的交互
Android中有时候需要在Service中改变Activity的UI,或者在Activity中修改Service中的数值.首先必须使用与Activity绑定的Service,有三种方式可以实现.第一 ...
- 通过href链接实现从当前页面跳转到动态页的指定页面的实现方式
指定页的jsp的href设置 <a href="/lekg/check/shangchuan2.jsp?tabtype=2"><li><img src ...
- 【转载】 Sqlserver中查看自定义函数被哪些对象引用
Sqlserver数据库中支持自定义函数,包含表值函数和标量值函数,表值函数一般返回多个数据行即数据集,而标量值函数一般返回一个值,在数据库的存储过程中可调用自定义函数,也可在该自定义函数中调用另一个 ...
- CVE-2019-0686|Microsoft Exchange特权提升漏洞补丁已发布
Microsoft Exchange Server中存在一个特权提升漏洞.成功利用此漏洞的攻击者可以获得与Exchange服务器的任何其他用户相同的权限.这可能允许攻击者执行诸如访问其他用户的邮箱之类 ...
- Windows Server 2016-活动目录NTP时间同步
在实际生产域环境下,往往会有很多跟时间不同步相关的问题,简单的说几种常见的情景:本地客户端时间与域控时间不统一导致无法加域:每次客户端电脑输入密码到进入桌面环境等N久:Skype for Busine ...
- Loj #2192. 「SHOI2014」概率充电器
Loj #2192. 「SHOI2014」概率充电器 题目描述 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品--概率充电器: 「采用全新纳米级加工技术,实现元件与导线能否通电完 ...