Salesforceのリレーションは2つの種類があります。
そもそも、リレーションというのは他のオブジェクトへの参照のことですね。
どんな種類があるかというと、参照関係と主従関係です。
これにどんな違いがあるか?というと代表的なところで以下になります。
- 主従関係
- とあるレコードに対し、主となるレコードを設定します
- レコードの所有者は、主となるオブジェクトの所有者と同じになります。これにより共有ルールに影響します
- 主となるオブジェクトでは、積み上げ集計を使って複数の従レコードの集計(件数、合計、最大、最小など)が簡単に集計できます
- 主となるレコードを更新しても従レコードには影響しませんが、従レコードを更新すると主となるレコードの積み上げ集計項目は更新されます
- 主となるレコードを削除すると従レコードは削除されます
- 参照関係
- とあるレコードから、1つのレコードを参照します
- レコードの所有者は参照先に関係なく設定できます
- 参照先レコードで集計しようとするとフローやApexを作成する必要があります
- 参照先レコードを削除すると、参照をクリアする もしくは参照先レコードの削除を禁止するのどちらかを選択して設定できます
ジョンクションオブジェクトとは?というのは公式リファレンスもあるし他の方が解説しているので省略します。
https://help.salesforce.com/s/articleView?id=sf.relationships_manytomany.htm&type=5
で、ジャンクションオブジェクトでは従オブジェクトを1つ作ってそこに主オブジェクトを2つ設定することでできますよ、というふうに説明がされているんですよね。
ただし、厄介なのが主従関係の個数制限です。実はSalesforceでは1つのオブジェクトは主、従合わせて2つまでしか主従関係が設定できないのです。なのでジャンクションを設定したいけどできない、、という状況があると思います。
が、ジャンクションオブジェクトは上で書いた違いを許容できれば参照関係でもできます!ご安心ください。