オブジェクト間のリレーション
リレーションは、オブジェクトを他のオブジェクトと関連付けます。たとえば、「バグ」という名前のカスタムオブジェクトをケースに関連付け、顧客のケースに関連付けられた商品の欠陥を追跡するために使用するなど、リレーションによって、カスタムオブジェクトを関連リスト内の標準オブジェクトにリンクできます。標準オブジェクトでの親と子のリレーションを参照するには、データモデル の ERD ダイアグラムを参照してください。
オブジェクトにカスタムリレーション項目を作成することにより、各種リレーションを定義できます。リレーションタイプにより、データの削除やレコードの所有者、セキュリティ、ページレイアウトの必須項目の扱い方が異なります。
-
主従 (1:n) — 主オブジェクトが従オブジェクトの動作を制御する、親子リレーション。
- 主オブジェクトのレコードを削除すると、関連する従レコードも削除されます。
- 従オブジェクトの Owner 項目は使用できません。この項目は、自動的に関連する主レコードの所有者に設定されます。主従関係の従側にあるカスタムオブジェクトでは、共有ルール、共有の直接設定、またはキューを使用できません。これは、共有ルール、共有の直接設定、またはキューには Owner 項目が必要なためです。
- 従レコードは、主レコードの共有設定およびセキュリティ設定を継承します。
- 従レコードのページレイアウトには、主従関係項目が必要です。
- デフォルトでは、主従関係にあるレコードの親を変更することはできません。ただし、システム管理者は、カスタムオブジェクトの主従関係定義の [親の変更を許可] オプションを選択して、主従関係にある子レコードの親を別の親レコードに変更できます。
主従関係を定義すると、その時点で作業をしているカスタムオブジェクトが従側になります。そのオブジェクトのデータは、他のオブジェクトのページレイアウトのカスタム関連リストとして表示されます。
-
多対多 — 主従関係を使用して、任意の 2 つのオブジェクト間で「多対多」リレーションモデルを形成することができます。多対多リレーションでは、1 つのオブジェクトの各レコードを他のオブジェクトの複数のレコードにリンクでき、またその逆のリンクも可能です。たとえば、「Bug (バグ)」という名前のカスタムオブジェクトを作成し、1 つのバグを複数のケースに、また 1 つのケースを複数のバグに関連付けることが考えられます。多対多のリレーションを作成するには、主従関係項目が 2 つあるカスタム連結オブジェクトを作成し、それぞれを関係付けたいオブジェクトにリンクします。詳細は、Salesforce オンラインヘルプを参照してください。
2 つの主従関係のあるカスタムオブジェクトは API バージョン 11 以降で使用できます。
API バージョン 34.0 以降、JunctionIdList データ型を使用して、エンティティの多対多リレーションを直接操作できます。基礎となる連結エンティティレコードを操作する必要はなくなりました。JunctionIdList 項目は、エンティティの他の項目と同様にクエリや更新ができます。JunctionIdList 項目へのクエリまたは更新は、基礎となる連結エンティティレコードへのクエリまたは更新として動作します。データ型 JunctionIdList の項目は、WSDL に ID 型の無制限の配列として表示されます。JunctionIdList は、Task および Event オブジェクトに実装されます。
- 参照 (1:n) — このタイプのリレーションは 2 つのオブジェクトをリンクしますが、削除やセキュリティへの影響はありません。主従項目とは異なり、参照項目は自動的に必須項目に設定され���わけではありません。参照関係を定義すると、オブジェクトのデータが他のオブジェクトのページレイアウトのカスタム関連リストとして表示されます。詳細は、Salesforce オンラインヘルプを参照してください。
リレーションの作成には、ユーザインターフェースおよび Salesforce メタデータ API を使用します。