1.lookup关系和master-detail关系有什么区别
master-detail:
- 关系紧密,如果父记录被删除,子记录也会被删除。
- 子记录继承父记录的属性和安全设置,比如共享和可见性。
- 可以使用Roll-Up Summary类型。
- 必须显示在pagelayout上。
lookup:
- 关系松散,如果父记录被删除子记录也不会删除。
- 不能使用Roll-Up Summary类型。
2.profile和permission set的区别
每个用户只能有一个profile,profile定义了用户最小的权限。在此基础上,通过permission set来补充权限,permission set可以有多个。profile上面有一些系统的权限配置是permission set没有的,比如login的ip地址,有效的apex等等。
3.custom metadata和custom setting的区别
custom metadata
- 用于业务数据,数据量大、复杂具有表结构。
- 支持validation rule、pagelayout,没有货币类型。
custom setting
- 一些系统环境的变量配置 比如外部集成的url、API密钥、阈值参数。是一些轻量的频繁访问的配置数据。
- 不支持picklist类型
4.salesforce常见的governor limit
关于soql和sosl的limit:
同期方法的每个Transaction中,最多发行100次soql查询,20次sosl查询;每次soql查询最多查5万条数据,sosl最多2000条数据;最多150次dml操作。
非同期方法的每个Transcation中,最多发行200次soql查询。其他和同期方法一致。
http callout:
每个Transaction中,http callout的总数最多是100;最大累计超时是120秒。(同期非同期一致)
异步方法:
同期方法中每次Apex调用具有@future的方法不超过50个,batch中不能调用@future方法,queueable中最多50个。通过System.enqueueJob把apex job添加到queue的最大值是50,非同期中只能用1次。