問題
開発者が、映画、俳優、契約を追跡するスキーマを作成することになりました。1つの映画は多くの契約を持つことができ、1人の俳優は多くの契約を持つことができます。各契約は、1 人のユーザーによって所有され、アクティブに管理されます。映画や俳優のレコードにアクセスすることなく、ユーザーが所有する契約を簡単に管理できるようにするには、どのスキーマを作成する必要がありますか。
- 映画オブジェクトへの主従関係と俳優オブジェクトへの参照関係
- 映画オブジェクトへの参照関係と俳優オブジェクトへの主従関係
- 映画オブジェクトへの主従関係と俳優オブジェクトへの主従関係
- 映画オブジェクトへの参照関係と俳優オブジェクトへの参照関係
正解
- 映画オブジェクトへの主従関係と俳優オブジェクトへの参照関係
- 映画オブジェクトへの参照関係と俳優オブジェクトへの主従関係
- 映画オブジェクトへの主従関係と俳優オブジェクトへの主従関係
- 映画オブジェクトへの参照関係と俳優オブジェクトへの参照関係
解説
この問題は、Salesforce内でのデータ構造の設計、特に映画、俳優、契約というエンティティ間の関係をどのように定義するかを尋ねています。要点は次の通りです。
- 映画は多数の契約を持つことができる。
- 1人の俳優は多数の契約を持つことができる。
- 各契約は1人のユーザーによって所有され、アクティブに管理される。
この情報から以下の関係を導き出すことができます。
- 映画と契約の間には「1対多」の関係があります。一つの映画が複数の契約を持てるため、映画は親であり、契約は子となります。しかし、契約は他の映画にも属すことができなければならないため、ここでの関係は主従ではなく、参照関係が適切です。これにより、契約は一つの映画に関連付けられるが、映画が削除されても独立して存在できます。
- 俳優と契約の間にも「1対多」の関係があります。一人の俳優が複数の契約を持てるため、同様に俳優は親であり、契約は子となります。ここでも契約は他の俳優にも属すことができるため、主従関係ではなく参照関係が適切です。
- 各契約は一人のユーザーによって所有されるということは、契約には所有者フィールドが必要であり、これは標準のSalesforce機能です。ユーザーは契約を管理するため、契約は独立したオブジェクトでなければなりません。
結論として、契約オブジェクトは独立したオブジェクトであり、映画と俳優の両方に参照関係を持つ必要があります。これにより、ユーザーは映画や俳優のレコードにアクセスすることなく、所有する契約を独立して管理できます。
それぞれの選択肢の理由について説明します。
□ 映画オブジェクトへの主従関係と俳優オブジェクトへの参照関係
これは不正解です。主従関係を映画オブジェクトに設定すると、契約は映画に依存する子レコードになります。これは、映画が削除された場合、すべての関連する契約も削除されることを意味します。また、契約は俳優オブジェクトに対して参照関係を持つため、独自の所有者を持つことができますが、契約が映画と俳優の両方に関連しているため、この設定では要件を満たしていません。
□ 映画オブジェクトへの参照関係と俳優オブジェクトへの主従関係
これは不正解です。俳優オブジェクトへの主従関係を設定すると、契約は俳優に依存する子レコードになります。これは俳優が削除された場合、その俳優に関連するすべての契約が削除されることを意味します。また、映画に対する参照関係は設定可能ですが、契約が映画と俳優の両方に関連している必要があるため、このスキーマは要件を満たしていません。
□ 映画オブジェクトへの主従関係と俳優オブジェクトへの主従関係
これは不正解です。契約が映画と俳優の両方に依存する子レコードになる場合、Salesforceでは1つの子レコードが2つの主従関係を持つことはできません。したがって、このスキーマは実装不可能です。
□ 映画オブジェクトへの参照関係と俳優オブジェクトへの参照関係
これは正解です。参照関係は、1つのレコードが別のレコードに関連していることを示しますが、依存関係はありません。つまり、映画や俳優が削除されても、契約レコードは影響を受けません。各契約は独自の所有者を持ち、映画や俳優レコードにアクセスせずに管理することができます。このスキーマは、問題で説明されている要件を満たしています。
コメント