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 ...
随机推荐
- windows下,读取快捷方式lnk所指向的路径
BOOL GetLnkFileName( OUT PWSTR pLnkName, OUT PWSTR OepnFileNameBuufer, IN DWORD OpenFileNameBufferSi ...
- jenkins + supervisor + ansible 实现netcore程序的多机一键部署
上一篇我们简单的说到了使用jenkins+supervisor实现了一个单机版的多副本部署,但是在更多的场景下还是需要netcore程序的多机一键部署,那么多 机器间如何分发呢? 肯定不能使用scp这 ...
- 贾天昊 - Nick
- 自定义超链接动画---transition
效果图: <a href="#"> <span>HTML</span> </a> a { position: relative; t ...
- 把时间留给重要的事——Markdown 模板功能上线
你是否遇到过因为同事在任务中过于放飞自我而感到头疼?或者经历过因为内容描写的不系统而导致关键信息被忽视? 现在,CODING Markdown 模板功能将帮助你解决这些困扰. 功能介绍 CODING ...
- openlayers4 入门开发系列之船讯篇
前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...
- K3数据字典备查
select distinct f.FNumber as 系统代码, f.FName AS 系统名称, d.FTableName AS 表名,d.FDescription AS 表说明,a.[nam ...
- 关于linux上postgresql的一些理解
刚开始接触postgresql,安装后就有一个默认用户postgres,而且在启动postgresql后只能通过切换到linux的postgres用户才能登录数据库进行操作,和Mysql的登录认证居然 ...
- 理解Device Tree Usage
英语原文地址: htttp://devicetree.org/Device_Tree_Usage 本文介绍如何为新的机器或板卡编写设备树(Device Tree), 它旨在概要性的介绍设备树概念,以及 ...
- 安装windows 10到固态硬盘实践记录
1.前提 由于之前一直用的机械硬盘,电脑用了几年是越来越慢,所以打算买个SSD,装个新系统,其他的机械硬盘都当从盘用 2.准备工作 SSD :256G 3星的 WIN10正版光盘一张 外置光驱一个 3 ...