对象关系

Salesforce中的对象关系和一般的关系数据库不同。

在关系数据库中对象间的关系是由主键、外键等加以定义。而在Salesforce中,对象之间的关系是由自定义字段来确定。

这么做的原因是Salesforce本身是实现了多租户的架构(Multi-tenancy),在内部将不同客户的数据统一存放。

在新建自定义字段的时候,选择“查找关系”(Lookup)或“主-详细信息关系”(Master-detail)即可创建对象间的关系。

查找关系

Salesforce中对于“查找关系”的说明是:

创建一个将此对象链接到另一对象的关系。关系字段允许用户单击查找图标,以从弹出列表中选择值。另一对象是列表中值的源。

举个例子:每个客户(Account)都有联系人(Contact),那么“客户”和“联系人”两个对象之间就有了查找关系。每个“联系人”对象中都有“客户名”字段,作为“查找关系”。

建立查找关系

下面举个例子说明如何建立查找关系。假设系统中有了一个“地址”的自定义对象,现在要为“地址”和“客户”建立查找关系。

  1. 进入设置界面。查找“对象”,点击“创建”菜单下的“对象”链接,再在页面中点击“地址”进入“地址”的字段页面。点击“自定义字段和关系”部分的“新建”按钮,进入“新建自定义字段”页面

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

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

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

  1. 接下来的步骤和建立普通自定义字段类似,设置字段的安全性和页面布局。在页面布局方面,系统会要求用户分别设置该查找关系所包含的两个对象的页面布局,即“客户”和“地址”的页面布局

  2. 最后保存即可。这样,在“地址”的字段页面,可以看到“客户”的查找关系字段已经建立了

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

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

主-详细信息关系

如果两个对象之间有很强的联系,一个对象必须依赖另一个对象而存在,那么它们之间便形成了“主-详细信息关系”。

Salesforce中对于“主-详细信息关系”的描述是:

创建一个此对象(子级或"详细信息")与另一对象(父级或"主")之间的特殊父子关系类型,其中:

  • 所有详细信息记录的关系字段必填。
  • 详细信息记录的所有权和共享由主记录确定。
  • 当用户删除主记录时,将删除所有详细信息记录。
  • 您可以在主记录上创建累计汇总字段以汇总详细信息记录。

关系字段允许用户单击查找图标,以从弹出列表中选择值。主对象是列表中值的源。

建立主-详细信息关系

举个例子说明如何建立主-详细信息关系。假设系统中有了“地址”和“街道”两个自定义对象,现在要为“地址”和“街道”建立主-详细信息关系。

  1. 进入“街道”对象的“新建自定义字段”页面。在第一步选择“主-详细信息关系”类型

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

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

  1. 接下来的步骤和建立普通自定义字段类似,设置字段的安全性和页面布局。在页面布局方面,系统会要求用户分别设置该关系所包含的两个对象的页面布局,即“街道”和“地址”的页面布局

  2. 最后保存即可。这样,在“街道”的字段页面,可以看到“客户”的查找关系字段已经建立了

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

利用主-详细信息关系建立多对多关系

两个对象之间可以建立多对多的关系。

要建立多对多的关系,除了两个已经存在的对象,还需要建立一个连接的对象。

在连接的对象中,建立两个“主-详细信息”关系字段,将两个需要多对多的对象分别作为主对象即可。

查找关系和主-详细信息关系的主要不同点

  • 查找关系是松散的,两个具有查找关系的对象不依赖对方存在。而主-详细信息关系中,作为详细信息的对象是不能脱离主对象单独存在的,主对象的某条数据记录被删除时,属于它的详细信息对象的数据记录也会被删除,类似于关系数据库的级联删除
  • 形成查找关系的两个对象分别有自己的分享权限。而作为详细信息对象,它的分享权限继承自主对象,无法单独建立

方案生成器(Schema Builder)

方案生成器是Salesforce提供的一个视图化界面,直观地展现了系统中各对象的属性和关系。在这里也可以快速地对系统中的对象进行浏览和修改。

在设置主菜单中找到“方案生成器”,点击链接即可进入。

方案生成器界面介绍

在方案生成器的界面左侧是系统中的对象列表。当用户勾选了某些对象,相应的详细信息便会显示在右侧的内容区域。

在右侧的内容区域,每个对象都显示为一个方框,里面包含了字段信息。在方框的右上角有齿轮图标,点击之后可以更改此对象的显示方式。

方框之间有连线,代表了对象之间的不同关系。

在右侧内容区域的右下方,有整个内容区域的缩略图,每个方框分别代表了一个对象。点击缩略图即可定位到内容区域对应的地方。

新建对象或字段

在方案生成器界面的左侧边栏,点击“元素”标签,然后将“对象”拖拽到内容区域空白处,即可新建对象。

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

删除对象或字段

在方案生成器界面的内容部分,可以删除自定义对象。

在自定义对象方框的右上角,点击齿轮图标,会显示一个菜单,除了可以更改对象的显示方式,还有“删除对象...”的链接。点击即可删除此对象。

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

Salesforce的对象关系的更多相关文章

  1. Salesforce 外部对象

    外部对象(External Object) 在Salesforce中,管理员或开发者可以通过"外部对象"将其他系统中的数据虚拟地展现为Salesforce的对象.每个外部对象都要连 ...

  2. 死去活来,而不变质:Domain Model(领域模型) 和 EntityFramework 如何正确进行对象关系映射?

    写在前面 阅读目录: 设计误区 数据库已死 枚举映射 关联映射 后记 在上一篇<一缕阳光:DDD(领域驱动设计)应对具体业务场景,如何聚焦 Domain Model(领域模型)?>博文中, ...

  3. 解析大型.NET ERP系统数据访问 对象关系映射框架LLBL Gen Pro

    LLBL Gen Pro是一个为.NET开发人员设计的的对象关系映射(ORM)框架,与NHibernate,Entity Framework等框架一样,通过实体与数据表的映射,实现关系数据库持久化. ...

  4. Hibernate(开放源代码的对象关系映射框架)

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自 ...

  5. ORM即 对象-关系映射(转自:微冷的雨)

    ORM即 对象-关系映射: 将数据库中的数据关系表,映射为实体对象. 灵动思绪EF(Entity FrameWork) 作者: 微冷的雨  来源: 博客园  发布时间: 2013-01-22 16:2 ...

  6. LLBL Gen Pro 4.2 Lite 免费的对象关系映射开发框架与工具

    LLBL Gen Pro是一款优秀的对象关系映射开发框架,自2003年发布以来,一直有广泛的客户群.LLBL Gen Pro有几个标志性的版本,2.5/2.6是一个很稳定的版本,公司的一些旧的项目仍然 ...

  7. hibernate(四)__由表逆向创建Domain对象和对象关系映射文件

    之前我们是手写Domain对象和对象关系映射文件->然后生成数据库中的Table. 现在我们反过来先在数据库中建好Table->然后用工具生成Domain对象和对象关系映射文件. 步骤: ...

  8. 对象关系映射ORM

    对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效 ...

  9. Hibernate入门5持久化对象关系和批量处理技术

    Hibernate入门5持久化对象关系和批量处理技术 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv 前言: 前面学习了Hiberna ...

随机推荐

  1. DownEditTextView【自定义Edittext对Android 软键盘向下的监听】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 记录自定义EditText控件实现监听软键盘隐藏事件的功能.基本上和参考资料相同. 效果图    代码分析 自定义EditText子 ...

  2. 从零单排学Redis【铂金一】

    前言 只有光头才能变强 好的,今天我们要上铂金段位了,如果还没经历过青铜和白银和黄金阶段的,可以先去蹭蹭经验再回来: 从零单排学Redis[青铜] 从零单排学Redis[白银] 从零单排学Redis[ ...

  3. C++删除文件末尾字符

    C++中使用fstream来进行文件读写,如果要覆盖文件末尾的部分字符,应该怎么操作呢? #include <iostream> #include <fstream> std: ...

  4. docker(5):数据的管理

    Docker的volume卷 为了能持久话保存和共享容器的数据. 使用docker volume卷的两种方式 1:数据卷 2:数据卷容器 1:数据卷 数据卷:数据卷会绕过docker 的ufs 直接写 ...

  5. 用animation的steps属性制作帧动画

    昨天火急火燎地接到一个任务,说是要做一个掷骰子的游戏,关于掷骰子期间的过渡动画,我本来是想用css 3d制作一个立体的骰子,然后叫UI给6张平面图贴上去.再用translate3d来操作.然而UI考虑 ...

  6. Changes of user relationship in AD can't be correctly synchronized to SCSM

    The relationship of users might be not correctly updated if related users were once re-named in AD o ...

  7. Android拦截并获取WebView内部POST请求参数

    起因: 有些时候自家APP中嵌入的H5页面并不是自家的.但是很多时候又想在H5不知情的情况下获取H5内部请求的参数,这应该怎么做到呢? 带着这个疑问,就有了这篇博客. 实现过程: 方案一: 最开始想到 ...

  8. SQL Server 2008R2 :远程调用失败 的解决方法(全部方法)

    SQL 中远程调用失败的原因 1.服务里面的启动权限未能启动,修改sql对应的服务进程权限就可以了 2.是因为VS 和SQL 起冲突了,数据库找不到访问地址导致的.解决的办法很简单,就是卸载掉多余的版 ...

  9. winfrom SVG转Imge

    svg矢量图的使用,将svg矢量图展示在pictureBox上,拖动可以应用到其他设计软件上,复杂一点,中间涉及到SVG的下载  以及  SVG转化为 图片等操作 效果图如下: 源码下载地址: htt ...

  10. Linux2:Linux目录结构

    Linux目录图 进入根目录,使用ll命令看一下Linux整个根目录图: 这里面所有的目录都是买完服务器之后最初始的目录,没有进过任何加工.Linux以树的结构组织所有目录,用一张图表示一下Linux ...