对象关系

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. 安装Mysql时端口号3306被占用,解决方法

    当我们在卸载mysql数据库重新安装的时候,会出现端口号3306被占用的情况 有两种解决方案: 一:可以不使用3306端口,也可以换成别的端口,如3307,3308等等 二:可以打开命令窗口 1.wi ...

  2. SAP MM 标准采购组织的分配对于寄售采购订单收货的影响

    SAP MM 标准采购组织的分配对于寄售采购订单收货的影响 PO 4100004022 是一个寄售的采购订单, 采购组织是CSAS, 工厂代码SZSP.采购信息记录也是有的, MIGO试图对该采购订单 ...

  3. Android之Realm详解

    文章大纲 一.Realm介绍二.Realm实战三.Realm官方文档四.项目源码下载五.参考文章   一.Realm介绍 1. 什么是Realm   Realm 是一个手机数据库,是用来替代 SQli ...

  4. 在Hyper-V上安装RemixOS 的Android模拟器

    不想用实体机,想不想弄个快速的Android虚拟环境,今天我们就来说说把Android模拟器(RemixOS)安到Hyper-v上的办法. 1. 下载RemixOs  或者直接去 论坛获得下载地址 2 ...

  5. 开源干货!!!.NET Core + JWT令牌认证 + Vue.js(iview-admin) 通用动态权限(RBAC)管理系统框架[DncZeus]开源啦!!!

    DncZeus 前言 关于 DncZeus DncZeus = Dnc + Zeus "Dnc"--.Net Core 的缩写: "Zeus"--中文译为宙斯, ...

  6. AI应用开发实战 - 手写算式计算器

    扩展手写数字识别应用 识别并计算简单手写数学表达式 主要知识点 了解MNIST数据集 了解如何扩展数据集 实现手写算式计算器 简介 本文将介绍一例支持识别手写数学表达式并对其进行计算的人工智能应用的开 ...

  7. SCSS & SASS Color 颜色函数用法

    最近做一个没有设计师参与的项目,发现 scss 内置的颜色函数还挺好用.记录分享下 rgba() 能省掉手工转换 hex 到 rgb 格式的工作,如以下 SCSS 代码 $linkColor: #20 ...

  8. 【死磕 Spring】----- IOC 之 获取 Document 对象

    原文出自:http://cmsblogs.com 在 XmlBeanDefinitionReader.doLoadDocument() 方法中做了两件事情,一是调用 getValidationMode ...

  9. 彻底关闭windows10自动更新解决方案

    window10的自动更新其实和window7和window8都有所不同,有些人认为只要停止了windows updates 就可以了,不会再开始了! 但是往往不是这样的,因为微软在window up ...

  10. 第4章 简单的C程序设计——选择结构程序设计

    在顺序结构中,各语句是按自上而下的顺序执行的,执行完上一个语句就自动执行下一个语句,是无条件的,不必作任何判断.实际上,很多情况下,需要根据某个条件是否满足来决定是否执行指定的操作任务,或者从给定的两 ...