問題
Cloud Kicks社は、標準オブジェクトの子オブジェクトから合計を計算するという新しい要件を受け取りました。チームはこれを宣言的に解決したいと考えています。アプリケーション構築者が評価すべき2つの考慮事項は何ですか。2つ選びなさい。
- 主従関係に変換する前に、参照関係のすべてのレコードに値が必要です。
- オブジェクトは最大2つの主従関係を持つことができます。
- アプリケーション構築者は、参照関係を主従関係に変更できません。
- 保存または更新時のトリガーで計算を開始できます。
正解
- 主従関係に変換する前に、参照関係のすべてのレコードに値が必要です。
- オブジェクトは最大2つの主従関係を持つことができます。
- アプリケーション構築者は、参照関係を主従関係に変更できません。
- 保存または更新時のトリガーで計算を開始できます。
解説
それぞれの選択肢の理由について説明します。
□ 主従関係に変換する前に、参照関係のすべてのレコードに値が必要です。
これは正解です。参照関係を主従関係に変更するためには、変更対象の参照関係に値が含まれている必要があります。これは、主従関係では従側のレコードが必ず主側のレコードに紐づいている必要があるためです。この要件を満たしていない場合、関係の変換はできません。
□ オブジェクトは最大2つの主従関係を持つことができます。
これは正解です。Salesforceのカスタムオブジェクトは、最大で2つの主従関係を持つことが可能です。この制限は、標準オブジェクトの子オブジェクトで合計を計算する際のデータモデル設計に影響を与える可能性があります。
□ アプリケーション構築者は、参照関係を主従関係に変更できません。
これは不正解です。アプリケーション構築者は条件を満たした場合、参照関係を主従関係に変更することが可能です。ただし、このプロセスには全てのレコードに参照関係の値が必要となるなどの前提条件があります。
□ 保存または更新時のトリガーで計算を開始できます。
これは不正解です。Apexトリガーを使用して保存または更新時に計算を開始することは可能ですが、「宣言的に解決したい」という要望があるため、Apexトリガーの使用はこの要望に反します。従って、このシナリオで考慮すべきではありません。
参考:オブジェクトリレーションの概要、オブジェクトリレーションの考慮事項
コメント