多対多リレーションについて

スポンサーリンク
Salesforce

こんにちは。にいるです。

前回同様、リレーションをテーマにしています。
今回は「参照関係」について紹介したいと思います。
主従関係についての記事はこちらをご覧ください。
参照関係についての記事はこちらをご覧ください。

1.多対多リレーションとは

主従関係を使用すれば、多対多リレーションのオブジェクト構成を作成することができます。
この関係を持っていれば、あるオブジェクトの各レコードを他のオブジェクトの複数のレコードに関連付けることができます。

ここではドラゴンボールを題材にして、わかりやすく説明していきたいと思います。

2.多対多リレーションの作成方法

誰が、いつ、どんな願いをしたのかを管理したいと思います。
まず「ドラゴンボールを使った人」、「神龍」、「願いごと」の3つのオブジェクトを作成しておきます。

構成としては、「ドラゴンボールを使った人」、「神龍」、「願いごと」(主-従-主)で神龍が人と願いを繋げる設定にしたいと思います。

多対多リレーション

まずは神龍オブジェクトで主従関係項目を2つ作ります。
これで神龍が人と願いの従オブジェクトになりました。

あとはレコードを作っていくだけですね。
神龍レコードが従なので、先に人と願いを作る必要があります。

多対多リレーション

多対多リレーション

と言うふうに両方のレコードを数個作り、神龍レコードも作成します。

多対多リレーション

すると、「ドラゴンボールを使った人」レコードを見てみると、関連リストに「神龍」も「願いごと」も関連づけられます。

多対多リレーション

反対の「願いごと」レコードを見ると、「神龍」と「ドラゴンボールを使った人」が関連づけられています。

このように多対多のリレーションは2つのオブジェクトを連結させます。

3.多対多リレーション上の設定

多対多リレーションでの設定について、主従関係と根本的には同じです。

従レコードへのアクセスは組織の共有設定で主オブジェクトに依存します。
従レコードの操作(作成、編集、削除)は主レコードへの参照権限に関わり、「参照のみ」、もしくは「参照と更新以上」のどちらかに設定が可能です。

もちろん、データの管理面では、積み上げ集計項目を主側で作成できます。
従側では主の項目を使用して数式項目と入力規則を作成することもできます。

他の規則として、連結オブジェクトは、別の主従関係の主側には設定することはできません。
また、多対多の自己参照も作成できません。
ここで言うと、「ドラゴンボールを使った人」-「神龍」-「ドラゴンボールを使った人」の設定はできないということですね。

4.多対多リレーション上の削除

主レコードのどちらかが削除されると、連結オブジェクトのレコードも削除され、ごみ箱に格納されますが、
両方ともが削除された場合、連結オブジェクトレコードは完全に削除され、復元することもできなくなります。

また主レコードは常に削除できるわけではなく、関連する連結オブジェクトのレコード数が200を超えていて、かつ、もう一方の主オブジェクトで連結オブジェクトが対象の積み上げ集計項目が作成されている場合は、主レコードを削除できません。
そして、このオブジェクトを削除するには連結オブジェクトのレコード数が200以下になるまで手動で削除しなければならないそうです。
大変なので、ここはデータローダなどを使用して対応したいところです。

5.まとめ

いかがでしたでしょうか。

多対多ってなんだ、と最初は私自身も思っていました。
不透明というより、複雑でよくわからない印象でした。ですが、主従関係をしっかり理解すれば、連結オブジェクトの概念やイメージもすぐに掴めると思います。

主と主の間を取り持つということですね。
みなさんも色々と触ってみてください。

他にも色々と標準機能やSalesforce機能について紹介しています。
そのまとめ一覧ページはこちらになりますので、よければ見てみてください。
Salesforceの機能ページまとめ一覧ページ

ではでは!

コメント

タイトルとURLをコピーしました