Administrator 練習問題 Q54
Cloud Kicks (CK) は、特定の顧客に関する情報を連絡先に保存し、靴とアクセサリーに関する情報をカスタム Merchandise オブジェクトに保存します。連絡先が複数の商品に関心を持つ可能性があることを示すために、CK 管理者は何を使用する必要がありますか?
左の○で回答を選択。本文を押すと横線で除外でき、もう一度押すと戻せます。
1つ選択してください(0/1)
正答:D. ジャンクション オブジェクト
解説
前提知識
多対多の関係とは
「1件の連絡先が複数の商品に関心を持ち、1件の商品にも複数の連絡先が関心を持つ」という、双方向で複数対応する関係です。1本のルックアップ関係または主従関係は基本的に一対多を表すため、Salesforceで多対多をモデル化する場合は、2つのオブジェクトの間にジャンクションオブジェクトを置きます。
ジャンクションオブジェクトとは
多対多を表現するために間に挟む、2つの主従関係を持つカスタムオブジェクトです。
💡 ここがまだモヤッとする方へ。主従関係とジャンクションオブジェクトの仕組みを一から整理した記事を用意しています → 主従関係とは何か:親が消えたら子も消える関係
設問の状況を分解する
- 連絡先の情報は連絡先(Contact)に保存
- 靴やアクセサリーの情報はカスタムのMerchandiseオブジェクトに保存
- 「連絡先が複数の商品に関心を持つ可能性がある」=連絡先1件に対してMerchandiseは複数、逆にMerchandise1件に対しても連絡先は複数
- これは典型的な多対多のパターン 標準の参照関係や主従関係を1本だけ引く方法では、多対多を表現できません。
選択肢の検討
A. 階層列 → ✕
階層関係(Hierarchical Relationship)は、ユーザーオブジェクトが自分自身を参照する(上司を指す)ための特殊な項目型です。連絡先とMerchandiseのような異なるオブジェクト同士の多対多には使えません。
B. ルックアップ フィルター → ✕
ルックアップフィルターは、既存のルックアップ項目で選択できる値を条件で絞り込む機能です。関係そのものを作る仕組みではなく、多対多の実現とは無関係です。
C. 式フィールド → ✕
式フィールド(数式項目)は、他の項目の値をもとに計算結果を表示する項目です。レコード同士の新しい関連付けを作ることはできません。
D. ジャンクション オブジェクト → ⭕ 正解
連絡先とMerchandiseのそれぞれへの主従関係を持つ新しいカスタムオブジェクト(例:関心商品)を作ることで、1件の連絡先が複数のMerchandiseと、1件のMerchandiseが複数の連絡先と結びつく多対多を表現できます。
管理者としての対処手順
- [設定]→[オブジェクトマネージャ]→[作成]→[カスタムオブジェクト]で、中間となる新しいカスタムオブジェクト(例:関心商品)を作成する。
- 作成したオブジェクトに、データ型[主従関係]の項目を作成し、関連先を[連絡先]に指定する。
- 同様に、データ型[主従関係]の項目をもう1つ作成し、関連先を[Merchandise]に指定する。
- 連絡先とMerchandiseそれぞれのページレイアウトに、新しいオブジェクトの関連リストを追加する。
あわせて覚えておきたいポイント
- ジャンクションオブジェクトのレコード自体に、「関心度」「登録日」などその組み合わせ固有の情報を持たせられます。これがジャンクションオブジェクトの実務的な価値です。
- 1つのカスタムオブジェクトに作成できる主従関係は最大2つです。ジャンクションオブジェクトでは、この2つの主従関係をそれぞれ異なるマスターオブジェクトへ設定します。
出典(Salesforce公式)
- Create a Many-to-Many Object Relationship — 多対多関係をモデル化するために、カスタムのジャンクションオブジェクトを作成し、関連付ける2オブジェクトへの主従関係を2つ作成することを裏付ける。
- Create a Junction Object(Trailhead) — ジャンクションオブジェクトを使用して、2つのマスター間の多対多関係を構築する手順を裏付ける。
- Increase the Maximum Relationships Allowed per Object — 1つのカスタムオブジェクトに作成できる主従関係が最大2つであることを裏付ける。