Salesforceの参照関係・主従関係とは?違いや設定方法について解説
この記事でわかること
- Salesforceの参照関係と主従関係の違いを明確に理解できる
- 各関係について深く理解した上でSalesforceで参照関係・主従関係の設定や調整ができるようになる
- 自分で応用し、さまざまなプロジェクトにおいて最適なオブジェクトリレーションを設計できる
執筆者 代表取締役社長 / CEO 杉山元紀
Salesforceを管理・運用されるご担当者様であれば、必ず抑えておくべき理解の一つに、「参照関係」と「主従関係」があります。
「参照関係」と「主従関係」は、Salesforceのオブジェクトリレーション構築に欠かせない重要な概念です。
オブジェクトリレーションの理解は、Salesforce認定アドミニストレーターの試験においても20%の試験範囲を占めており、これらの関係を正しく理解し、適切に設定することで、Salesforceのデータ管理を効率化し、情報の整合性を保つことができます。
そこで本記事では、Salesforceにおける「参照関係」と「主従関係」の基本的な概念から、それぞれの関係の設定方法や設定例について詳しく解説します。
本記事をお読みいただくことで、「参照関係」と「主従関係」について理解が深まり、自社のSalesforceデータ構造の最適化やビジネスプロセスの効率化のために、「参照関係」と「主従関係」の設定時にどちらを選べば良いか適切な判断ができるようになります。
ぜひ最後までご一読ください。
参照:Salesforce(セールスフォース)とは?製品群や機能、メリット・デメリットを簡単に解説!
目次
Salesforceの参照関係・主従関係とは?
Salesforceの参照関係と主従関係とは、どちらもSalesforceのオブジェクト同士の繋がりを表す用語です。
参照関係や主従関係の設定を誤った理解で実施してしまうと、運用の際、予期せずデータを削除してしまったり、適切な関連データを抽出できなくなってしまうため、ぜひ本章の内容についてはしっかりと把握いただくことをおすすめいたします。
Salesforceのオブジェクトリレーションの基本概念
Salesforceのオブジェクトはそれぞれが適切なデータを蓄積するための”箱”ですが、それらは相互に関わりあっています(親子関係)。
例えば、営業担当者が取引先オブジェクト(親)から自身の担当する企業のデータを見る際、そこには、該当の企業に所属する取引先担当者レコード(子)や過去・現在の商談レコード(子)が紐づいています。
それにより、営業担当者は、一つ一つのオブジェクトからデータを探しに行くことなく、すぐにアプローチすべき企業の担当者やフォローすべき商談を見つけ出すことができます。
Salesforceを活用するためにはオブジェクト同士の関わり合いが重要であり、「参照関係」と「主従関係」はそれらオブジェクト同士の関わり合いを代表するものです。
続いて、「参照関係」と「主従関係」についてそれぞれの用語について見ていきましょう。
参照:Salesforceのオブジェクトとは?オブジェクトの種類や作成方法、リレーションなどをわかりやすく解説
Salesforceの参照関係とは
Salesforceにおける参照関係は、オブジェクト間の関係を設定する方法の一つで、データ同士の連携を可能にします。
例えば、取引先オブジェクトと取引先責任者オブジェクトの間に参照関係を設定すると、取引先責任者が特定の取引先に関連付けられます。
参照関係では、親オブジェクトのレコードが削除されても、それを参照する子オブジェクトのレコードは削除されず、子オブジェクトは独立して存在し続けます。
また参照関係は、多対一または一対一の関係を持つデータの管理に適しており、参照項目関係を設定することで、子オブジェクトのページレイアウト上に参照項目を配置することができます。
Salesforceの主従関係とは
Salesforceにおける主従関係は、特に強力なオブジェクト間の関係であり、親オブジェクト(主)と子オブジェクト(従)の間に強い依存関係を設定します。
主従関係では、親オブジェクトのレコードが削除されると、そこに紐づく子オブジェクトのレコードも自動的に削除されるなどの特徴があります。
また、子オブジェクトは親オブジェクトのセキュリティ設定や共有設定を継承し、さらに子オブジェクトのレコードには必ず親オブジェクトのレコードを紐づける必要があり、独立して存在することができないといった強い結びつきが生まれます。
主従関係は、データの整合性と統一された管理が必要な場合に適しており、積み上げ集計項目を使用して親オブジェクトに子オブジェクトのデータを集計することも可能です。
Salesforceの参照関係・主従関係の違い
Salesforceの参照関係と主従関係の用語について概要を理解いただいたところで、2つの関係の違いについて整理いたします。
参照関係と主従関係とではオブジェクト同士の結びつきの強さが異なります。
参照関係や主従関係の設定時に、両者の違いを理解した上で適したオブジェクトリレーションを構築するようにしましょう。
参照関係と主従関係の主な違いは以下の表をご参照ください。
特徴 | 参照関係 | 主従関係 |
---|---|---|
親レコードの設定 | 任意(必須項目に設定しない限り) | 必須項目 |
削除時の連鎖 | 親レコードが削除されても子レコードは残る | 親レコードが削除されると子レコードも削除 |
セキュリティと共有設定 | 親子で独立して設定可能 | 親オブジェクトに従う |
レコード所有者の設定 | 親子で独立して設定可能 | 親オブジェクトに従う |
積み上げ集計項目 | 使用不可 | 使用可能(最大値、最小値、合計、平均) |
複数関係設定の可否 | 複数の参照関係(最大40個)を設定可能 | 一つのオブジェクトにつき2つまで設定可能 |
親レコードの設定
参照関係では必須項目として設定しない限りは、親レコードであっても入力が任意の項目となる一方、主従関係では親レコードの入力は必須となります。
また参照関係では、紐づいている親レコードの指定を自由に変更できますが、 主従関係の場合は、権限を持った管理者ユーザーや「親の変更を許可」といった設定をしない限り、親レコードの指定を変更できません。
削除時の連鎖
レコードの削除時においても参照関係と主従関係では異なっており、主従関係では、 親レコードを削除すると、紐づく子レコードも自動的に削除されます。
一方で参照関係では、子レコードも独立して存在することが可能で、 親レコードが削除されても、子レコードをそのまま残しておくことができます。
(項目設定において、親レコードの削除に伴って子レコードも自動削除させることは可能です。)
セキュリティと共有設定
主従関係においては、親子レコードのアクセス権は共通しており、親レコードへアクセスできるユーザーは、子レコードにもアクセスすることが可能です。
一方で参照関係においては、アクセスできる権限は親子レコードで独立しており、親レコードと子レコードへのアクセス権限はそれぞれで設定可能です。
(親レコードへのアクセスは許可するが、子レコードは一部ユーザーのみアクセス権限を付与するなど。)
レコード所有者の設定
参照関係と主従関係において、セキュリティと共有設定が異なる理由と関連しますが、参照関係では親レコードと子レコードのそれぞれにレコード所有者を割り当てることが可能です。
そのため、親子レコードそれぞれが独立して存在し、異なるアクセス権限の設定ができる一方、主従関係では異なります。
主従関係においては、親レコードと子レコードの所有者は連動しており、子レコードにおいて所有者を個別に設定することができません。
積み上げ集計項目
ユーザーが業務を効率的に行うためのページレイアウトやデータ管理の観点で重要になりますが、積み上げ集計項目の利用可否でも参照関係と主従関係は異なります。
主従関係では親レコードにおいて、子レコードの対象となる値を集計することが可能です。
(例えば、A社の取引先レコードにおいて、A社と過去成約した商談レコードの金額や件数を合計して表示するなど。)
これにより、ユーザーは主従関係が設定された親レコードを見れば、取引状況の全体概要を一目で把握することができます。
一方で、参照関係においては積み上げ集計項目が利用できません。
そのため、積み上げ集計項目が必要な場面では主従関係の活用を検討しましょう。
参照:Salesforceの積み上げ集計とは?フローを用いた設定方法や制限についても解説
複数関係設定の可否
一つのオブジェクトにおいて作成可能なカスタムリレーション項目は、主従関係と参照関係のカスタム項目は合わせて40個まで作成可能です。
この内、主従関係では1つのオブジェクトに最大2つまで、参照関係では最大40個まで作成できます。
オブジェクトマネージャーにて、カスタム項目の作成上限と現在の作成個数を確認できますので、ぜひ一度ご確認ください。
また最大作成可能数についてはSalesforceにお問い合わせをすることで拡張も可能です。
以下Salesforceの公式ヘルプページをご参照ください。
Salesforceの参照関係・主従関係の設定例
Salesforceの参照関係と主従関係について理解を深めていただいたところで、本章では実際の設定例について解説いたします。
適切なオブジェクトリレーションを設定することによって、自社のデータ構造が最適化され、Salesfrceの管理ご担当者様やユーザーの業務効率は格段に向上します。
参照関係や主従関係の設定は、唯一の正解があるわけではございません。
自社のSalesforce環境で実践する際に、業務フローに適した適切なリレーション設定ができるよう、ぜひ本設定例をご参照ください。
Salesforceの参照関係の設定例
Salesforceの参照関係は以下のような場合に適しています。
- 親レコードと子レコードに強い依存関係が不要
- 親オブジェクトのレコード削除時に、関連する子オブジェクトのデータを保持したい
- 親オブジェクトと子オブジェクトでそれぞれアクセス権を柔軟に設定したい
- 親オブジェクトのレコード所有者と子オブジェクトのレコード所有者をそれぞれ割り当てたい
そのため、過去の履歴データを元に分析を行いたいといった場合には参照関係のリレーションを設定することを推奨します。
例えば、過去の商談情報を元に営業活動分析をしたい場合などは、取引先責任者と商談を参照関係で結びつけることで、取引先責任者が削除されたとしても、商談の履歴はそのまま残ります。
商談履歴を別途残しておくことで、過去にどのお客様にどのような提案をしたのか、またはどのような規模や業種のお客様にどのような提案が効果的なのか、次の営業施策を検討するための分析が可能になります。
Salesforceの主従関係の設定例
Salesforceの主従関係は以下のような場合に適しています。
- 親レコードと子レコードに強い依存関係が必要
- 親オブジェクトのレコード削除時に、関連する子オブジェクトのデータも削除したい
- 親オブジェクトと子オブジェクトでアクセス権を統一したい
- 親オブジェクトで子オブジェクトのレコードを集計したい
- 親オブジェクトのレコード所有者と子オブジェクトのレコード所有者を常に一致させたい
そのため、一貫したセキュリティやデータの整合性を常に保ちたい場合には主従関係のリレーションを設定することを推奨します。
例えば、従業員満足度アンケートなど秘匿性の高いデータを保持する場合は、従業員(主)とアンケート結果(従)を主従関係で紐づけておくことで、一貫したデータの管理が可能です。
上記により、アンケートデータには、元々従業員データにアクセスができた一部の人事メンバーのみがアクセスできるようになり、また従業員が退職した場合には、該当のアンケートデータも同時に削除がされるような運用が可能になります。
アクセス権限を不用意に割り当てたくないデータの管理や秘匿性の高いデータを不必要に蓄積しておきたくない場合には、主従関係の設定が効果的です。
Salesforceの参照関係・主従関係の設定方法
それでは実際にSalesforceの参照関係・主従関係を設定する方法について順を追って解説します。
参照関係と主従関係の設定は、関連させたいオブジェクトにカスタム項目を作成することによって設定が可能です。
例えば、「請求オブジェクト」というカスタムオブジェクトを商談オブジェクトと結びつけたい場合、請求オブジェクトの中に商談オブジェクトを参照するための主従関係を持ったカスタム項目を作成することで、商談オブジェクトを「主(親)」、請求オブジェクトを「従(子)」とする主従関係を設定することができます。
次章以降ではそれぞれのリレーション設定方法について解説しておりますので、設定に迷った際は繰り返しご確認くださいませ。
※解説は事前に作成済みの「テスト」というカスタムオブジェクトを元に行います。
Salesforceの参照関係を設定する
はじめに参照関係を設定する場合のステップについて見ていきましょう。
今回は、作成済みの「テスト」オブジェクトと「取引先」オブジェクトの参照関係を設定する場合を想定して、解説します。
1.Salesforceの「設定(右上の歯車アイコンから選択)」をクリック
2.左上タブにある「オブジェクトマネージャー」 をクリック
3.「オブジェクトマネージャー」のクイック検索ボックスに「テスト(参照関係項目を作成したいオブジェクト)」と入力し、表示される「テスト」を選択
4.「テスト」オブジェクトページの左側から「項目とリレーション」を選択し、「新規」をクリック
5.データ型から「参照関係」を選択し、「次へ」をクリック
6.関連先に参照したい任意のオブジェクト(今回は「取引先」)を選択し、「次へ」をクリック
7.必須項目を入力し、「次へ」をクリック
- 項目の表示ラベル:参照関係項目を作成したいオブジェクトに表示される項目名
- 項目名:Salesforce内のオブジェクトや項目をプログラム上で認識するための名称
- 子リレーション名:親オブジェクトからみた際の子オブジェクト名称
※親オブジェクトに対して子は複数紐づくので、作成したい項目名を複数形にして命名しておくと後の管理がしやすくなります
また今回は緩やかな関係を構築したいので、親オブジェクトにある「参照レコードが削除された場合の対処方法」は、子オブジェクト側の項目の値がクリアされるように設定します(相互に独立して存在できる状態)。
8.「参照項目に対する項目レベルセキュリティの設定」は今回変更せず、「次へ」をクリック
9.「ページレイアウトへの参照項目の追加」は、作成した項目を追加したい任意のレイアウトをチェックして、「次へ」をクリック
10.必要に応じて、親オブジェクトに表示する「関連リスト」の表示名を設定し、「保存」をクリック
※関連リストとは以下に表示されるリストです。
11.新たに取引先オブジェクトへの参照関係項目が作成されたことを確認し、完了。
Salesforceの主従関係を設定する
次に主従関係を設定する場合のステップについて見ていきましょう。
作成手順は参照関係の設定の仕方と大きく違いはございません。
同じく、作成済みの「テスト」オブジェクトと「取引先」オブジェクトの主従関係を設定する場合を想定して、解説します。
1.Salesforceの「設定(右上の歯車アイコンから選択)」をクリック
2.左上タブにある「オブジェクトマネージャー」 をクリック
3.「オブジェクトマネージャー」のクイック検索ボックスに「テスト(主従関係項目を作成したいオブジェクト)」と入力し、表示される「テスト」を選択
4.「テスト」オブジェクトページの左側から「項目とリレーション」を選択し、「新規」をクリック
5.データ型から「主従関係」を選択し、「次へ」をクリック
6.関連先に親オブジェクトとしたい任意のオブジェクト(今回は「取引先」)を選択し、「次へ」をクリック
7.必須項目を入力し、「次へ」をクリック
- 項目の表示ラベル:参照関係項目を作成したいオブジェクトに表示される項目名
- 項目名:Salesforce内のオブジェクトや項目をプログラム上で認識するための名称
- 子リレーション名:親オブジェクトからみた際の子オブジェクト名称
※親オブジェクトに対して子は複数紐づくので、作成したい項目名を複数形にして命名しておくと後の管理がしやすくなります
「共有設定」では、子レコードの作成、編集、削除するために必要な最低限のアクセス権限を設定できます。
また「親の変更を許可」では、レコード作成後に親レコードの変更可否を設定できます。
8.「参照項目に対する項目レベルセキュリティの設定」は今回変更せず、「次へ」をクリック
9.「ページレイアウトへの参照項目の追加」は、作成した項目を追加したい任意のレイアウトをチェックして、「次へ」をクリック
10.必要に応じて、親オブジェクトに表示する「関連リスト」の表示名を設定し、「保存」をクリック
11.新たに取引先オブジェクトへの主従関係項目が作成されたことを確認し、完了
Salesforceの参照関係・主従関係の設定を変更する
Salesforceの参照関係と主従関係は、作成後にもデータ型を変更することが可能です。
ただし、変更する際にはいくつか条件があります。
■「参照関係」から「主従関係」に変更する場合の条件
- 主従関係を設定する子オブジェクトが存在すること
- 全てのレコードにおいて、主従関係に変更する項目に値が含まれていること
- 参照関係を設定している子オブジェクト側のアクセス権限が「親レコードに連動」となっていないこと
- 子オブジェクト側に他の主従関係項目が存在していないこと
■「主従関係」から「参照関係」に変更する場合
- 主従関係を設定している親オブジェクトに積み上げ集計項目を作成していないこと
参照関係と主従関係の変更は以下の手順で実施可能です。
※前章で作成した「テスト」オブジェクトを元に解説します。
1.Salesforceの「設定(右上の歯車アイコンから選択)」をクリック
2.左上タブにある「オブジェクトマネージャー」 をクリック
3.「オブジェクトマネージャー」のクイック検索ボックスに、「テスト(データ型を変更したいオブジェクト)」と入力し、表示される「テスト」を選択
4.「テスト」オブジェクトページの左側から「項目とリレーション」を選択し、データ型を変更したい項目をクリック
5.「編集」をクリック
6.「データ型の変更」をクリック
※この際に、積み上げ集計項目が存在するなど、データ型が変更できない事由がある場合は、「データ型の変更」ボタンが表示されません。
7.変更したいデータ型を選択して、「次へ」をクリック
※今回は「主従関係」から「参照関係」へのデータ型変更の場合を見ていきます。
8.必須項目を入力し、「次へ」をクリック
※入力項目の詳細は、本記事「Salesforceの参照関係を設定する」の章に記載のステップ7をご覧ください。
9.「ページレイアウトへの参照項目の追加」は、作成した項目を追加したい任意のレイアウトをチェックして、「次へ」をクリック
10.「参照項目に対する項目レベルセキュリティの設定」は今回変更せず、「次へ」をクリック
11.必要に応じて、親オブジェクトに表示する「関連リスト」の表示名を設定し、「保存」をクリック
12.変更を加えた項目が、主従関係から参照関係に変更されたことを確認し、完了
Salesforceの参照関係・主従関係の注意事項
最後に、Salesforceの参照関係と主従関係を活用する際の注意点について触れたいと思います。
参照関係と主従関係は、様々な機能と密接に関わる重要概念のため、細かい点で取り扱いに悩む場面もございますが、以下では代表的な注意事項について見ていきたいと思います。
標準オブジェクトとカスタムオブジェクトの主従関係について
主従関係を設定する際、標準オブジェクトは、カスタムオブジェクトの従側として設定することはできません。
関係変更時のアクセス権限について
主従関係を設定している、子オブジェクト側(従側)で参照関係に変換すると、オブジェクトの組織の共有設定は、親レコードと連動していたものが「公開/参照・更新可能」に変更されます。
また、参照関係を主従関係に変換すると、組織の共有設定が 「親レコードに連動」 に変更され、共有モデルが 「公開/参照・更新可能」 に更新されます。
カスタムオブジェクトの削除について
カスタムオブジェクトが主従関係の親レコード(主側)として設定されている場合、そのカスタムオブジェクトは削除することができません。
主従関係の子オブジェクト(従)になっているカスタムオブジェクトを削除すると、主従関係は参照関係に変換されます。
親レコードの変更について
デフォルトでは、主従関係が設定されたレコードにおいて、親レコードを変更することはできません。
ただし、システム管理者が主従関係定義の 「親の変更を許可」 オプションを選択することで、カスタムオブジェクトで主従関係にある子レコードの親を、任意の親レコードに変更することができます。
まとめ
本記事では、Salesforceのオブジェクト同士を関連付ける「参照関係」と「主従関係」について、基本的な概念から実際の作成方法、また活用や使い分けについての説明をしてきました。
Salesforceの参照関係・主従関係を自社で実際に設定・管理していくイメージをお持ちいただけたでしょうか?
参照関係・主従関係は、Salesforceのデータ構造を最適化していく上で、非常に重要なキーワードです。
自社の業務フローやニーズに沿った運用をしないと、ユーザーが適切なデータを参照できなくなってしまったり、予期せずSalesforce内のデータを削除してしまうといった非効率的な事態や自社のデータ資産を遺失するような事態につながってしまいます。
Salesforceを管理されているご担当者様であれば、これまで様々なオブジェクトリレーションの構築やデータ項目の作成をされているかと思います。
本記事を参考に、自社のSalesforce環境において、どのようにオブジェクト同士のリレーションがなされているのか、また適切なリレーションが構築できているのか、改めて見直すきっかけになりましたら幸いです。
同時に、参照関係や主従関係の選択などデータ構造の最適化には、自社セキュリティや実務での活用状況など様々な考慮事項があります。
自社のSalesforce環境を見直す際に、自社の業務フローに沿って一貫性のあるデータ構造の構築にはどのようなものがあるか、具体的な方法やアドバイスについてご興味・ご関心がある方は、ぜひ弊社ストラへお問い合わせくださいませ。
ストラではSalesforceの各種機能や設定、オブジェクトリレーションなどのデータ構造が、お客様の目指すデータ活用のために有効に機能しているのか、お客様の業務フローにマッチしているのか、お客様の理想や現状を把握した上で、適切なSalesforceの環境設定や運用をご支援いたします。
自社の運用に沿ったSalesforce活用ができているのか、今一度見直してみたいと思われたご担当者様は、こちらのお問い合わせフォームよりまずはお気軽にご相談してみてください。