コンサルティング事業部の笹谷です。
Salesforceを扱ううえで欠かせない概念の一つに、「主従関係」「参照関係」があります。これらは、前回解説した「オブジェクト」の関係性を表すものですが、オブジェクトと同じくらいとっつきづらい考え方です。
今回はこのオブジェクトの関係性について分かりやすく解説します。
※わかりやすさ優先にしておりますので、データベースの設計などは無視しております
主従関係・参照関係の違いは「結びつきの強さ」
主従関係(Master-Detail Relationship)
主従関係は、2つのオブジェクトが強く結びついた関係です。
例を出して説明すると、「鬼滅の刃」は「少年ジャンプ」に掲載されていた漫画の一つです。
この場合、「少年ジャンプ」を主オブジェクト、「鬼滅の刃」を従オブジェクトとすることができます。
こうすることで、「少年ジャンプ」で「鬼滅の刃」の登場人物を参照することができます。
主従関係の主な特徴は以下の通りです。
- 主オブジェクトでレコードを削除すると従オブジェクトで削除
主オブジェクトでデータを削除すると、従オブジェクトで反映される仕組みです。
「少年ジャンプ」で竈門炭治郎というレコードを削除すると、「鬼滅の刃」からも削除されてしまいます。 - 共有設定は主オブジェクトから引き継ぐ
「少年ジャンプ」が非公開になると、「鬼滅の刃」も非公開になります。 - 積み上げ集計項目を使用できる
「鬼滅の刃」の登場人物の合計などを「少年ジャンプ」で表示することができます。
カスタム項目の一つ。
子レコードの情報を親レコードに集約する項目。レコード件数、合計、最大、最小値を集計する。
項目リレーションから設定可能。
参照関係(Lookup Relationship)
参照関係は、オブジェクトの関係が薄い時に使用します。
「鬼滅の刃」と「ONE PIECE」は週刊少年ジャンプで掲載されている漫画ですが、お互いの関係はそこまで濃くありません。
主従関係とは逆で、片方のレコードを削除してももう一方のレコードは削除されない、共有設定はそれぞれ設定できるといった特徴があります。
別オブジェクトのレコードを参照したいけど、主従ほど強く結びつけない時に使用します。
(参考)多対多リレーション(Many-to-many Relationship)
多対多リレーションは、主従関係の延長線にある関係です。
主ー従ー主という形で主従関係を設定するとき、多対多リレーションと呼ばれます。
こちらは別の記事で詳しく解説しますので、ひとまず「そんなもんなのか」という理解で大丈夫です。
標準オブジェクトの参照関係を図解
主従関係と参照関係について理解したところで、標準オブジェクトの関係について代表的なものを図にすると以下の通りです。
こちらはSalesforceのスキーマビルダーと呼ばれるもので、オブジェクトの関係を図示しつつ実際に作成できるツールです。この図を見てみると、代表的な標準オブジェクトはお互いがさまざまな参照関係で結びついているのが分かります。
この図からもわかるように、セールスフォースの標準オブジェクトはさまざまなオブジェクトのレコードが絡み合ってひとつのレコードが構成されています。このオブジェクトが組み合わさることで、利用者にとって必要な情報を表示することができます。