コンテンツにスキップ

標準データモデル

ほかに 28 言語で読めます

English · Español · Português (Brasil) · Français · Deutsch · Italiano · 한국어 · 简体中文 · Português (Portugal) · 繁體中文 · Bahasa Indonesia · Türkçe · Polski · Tiếng Việt · ไทย · Nederlands · العربية · עברית · Українська · हिन्दी · Русский · Svenska · Dansk · Norsk bokmål · Suomi · Español (México) · Français (Canada) · Deutsch (Schweiz)

An aisle of a builders' supply warehouse, its racks stacked with ready-made standard doors, windows and stair parts, a cart waiting in the aisle.
AI で生成した画像

モジュール2/10:Data Architectコース第3章「Salesforceのデータアーキテクチャ」。各モジュールは単独でも読めます。 前へ:Salesforceのデータプラットフォーム:データベース以上のもの · 次へ:自分で作る:カスタムオブジェクト

このモジュールが答える問い: Salesforceはすでに何をモデリングしてくれていて、それはどう組み立てられているのか?

モジュール1で、母船を見よと言いました。何かを発明する前に、Salesforce自身がそれをどうやっているかを見るのです。このモジュールで、実際にそれを見ていきます。Salesforceはすでに多くのビジネスを標準オブジェクトとしてモデリングしてくれています。そして私が訪れるたいていの組織で、仕事の大半をこなしているのはそのうちの2つのモデル、SalesモデルとServiceモデルです。何かがカスタムオブジェクトに値するかどうかを判断する前に、すでに何があるのかを知っておく必要があります。それが次の2つのモジュールです。

何がオブジェクトを標準にするのか

Section titled “何がオブジェクトを標準にするのか ”

標準オブジェクトは最初から用意されています。Salesforceが作ったもので、決まった目的があり、独自の項目とリレーションを持っています。項目を追加し、その周りに自動化を作り、レイアウトを変えることはできますが、設計し直すことはできません。標準の項目とリレーションはSalesforceのものです。

名前を見てください。Account、Contact、Case。接頭辞も接尾辞もありません。 それはSalesforceがその領域を自分のために取っておいているということです。私たちが作るものはすべて__cで終わるので、Salesforceはいつでも新しい標準オブジェクトを追加でき、あなたの組織にあるものと衝突することは決してありません。そして実際、リリースのたびに追加しています。

どこかの時点で、誰かがうまくいかない製品オブジェクトを作り、それを置き去りにしなければなりませんでした。だからAPI参照名はProduct2なのです。誰かがSalesforceを知っていると言ったとき、これが私の最初のリトマス試験です。

左側のリードから始めましょう。顧客になるかもしれない人です。リードは、まだ本当の意味ではモデルの一部ではありません。一時的な置き場所です。リードを取引開始すると、Salesforceが本当のレコードを作ります。取引先、取引先責任者、そして案件があれば商談です。だから私はリードを脇に離して描きます。

取引先は会社です。その取引先責任者は、そこにいる人々です。商談は、その取引先との案件です。ここまでは、予想どおりでしょう。

ここからが面白いところです。案件には何が含まれているのでしょう? 各行は商談商品で、商談商品は商品を直接指していません。価格表エントリを指しています。この商品を、この価格で、この価格表で、というものです。価格表エントリは商品と価格表の間にあるので、同じ商品が標準価格表ではある価格、パートナー向けの価格表では別の価格を持つことができます。

関係が「もの」になったのが2つ、続けて並んでいるのです。第2章の、配送と製品の間にある配送品目や、犬と芸の間にある犬の芸を覚えていますか? Salesforceはここでまったく同じことを2回やっています。商談と価格表エントリの間の商談商品、そして商品と価格表の間の価格表エントリです。これが読めるようになれば、標準データモデルのほとんどが読めるようになります。

Salesモデル Salesモデル。左側に離れて置かれたリードは、取引先に取引開始されます。取引先は取引先責任者と商談を持ちます。商談は価格表を使い、商談商品を含みます。各商談商品の価格は1つの価格表エントリで決まります。価格表は価格表エントリを列挙し、商品は価格表エントリに載ります。つまり、各価格表エントリは1つの商品と1つの価格表を結びます。 取引開始 持つ 持つ 使う 含む 価格を決める 列挙する 載る リード 取引先 取引先責任者 商談 価格表 商談商品 価格表エントリ 商品 ちょうど1つ 0または1つ 1つ以上 0以上 © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

そのつながりを、それを支える項目とともに近くで見てみましょう。

価格のつながりを近くで見る 価格のつながりを詳細データモデルで表した図。商談商品は商談ID、価格表エントリID、数量、販売価格を持ち、価格は1つの価格表エントリで決まります。価格表エントリは価格表ID、商品ID、リスト価格、「標準価格を使用」のフラグを持ちます。価格表は名前と「標準」のフラグを持ち、商品は名前と商品コードを持ちます。 価格を決める 列挙する 載る 価格表 価格表ID レコードID 名前 標準 商談商品 商談商品ID レコードID 商談ID 価格表エントリID 数量 販売価格 価格表エントリ 価格表エントリID レコードID 価格表ID 商品ID リスト価格 標準価格を使用 商品 商品ID レコードID 名前 商品コード ちょうど1つ 0または1つ 1つ以上 0以上 © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

多くの人がつまずくルールが一つあります。標準価格表があり、ほかの価格表の価格表エントリは、その商品の標準価格をそのまま使うことができます。商談の商品をロードする前に、その商談がどの価格表を使っているかを把握しておきましょう。

次は家のもう一方の側です。同じ取引先、同じ取引先責任者。何か問題が起きると、顧客はケースを起票します。

ケースはたいてい顧客が持っている何かについてのもので、Salesforceにはそのためのオブジェクトがあります。納入商品です。モジュール5では、これを見落とされがちな標準オブジェクトと呼びます。顧客が持っているもので、私たちから買ったかどうかは問いません。

では、顧客は何を受ける権利があるのでしょう? それがエンタイトルメントです。取引先が受けられるサポートのことで、多くの場合、納入商品、商品、またはサービス契約に結びついています。ケースにエンタイトルメントを設定すれば、そのケースは自分がどのレベルのサポートを受けるべきかを知ることになります。

Serviceモデル Serviceモデル。取引先は取引先責任者、ケース、納入商品を持ちます。取引先責任者はケースを報告します。ケースは1つの納入商品を対象にすることがあり、取引先に属するエンタイトルメントがケースをカバーします。ケースからその角を回って自分自身に戻る線が親ケースです。ケースは0以上のケースの親であり、各ケースの親は0または1つです。 持つ 持つ 報告する 所有する 対象とする カバーする 親 取引先 取引先責任者 納入商品 ケース エンタイトルメント ちょうど1つ 0または1つ 1つ以上 0以上 © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

ケースから自分自身に戻ってくる線を見てください。すべてのケースには親ケース項目があり、それは別のケースを指しています。これが自己参照、つまりオブジェクトからそれ自身へのリレーションです。初めて見たときに多くの人が混乱するので、私がこれを使う2つの理由を紹介します。

1つ目:大きな問題が、小さな問題に分かれる場合。顧客から、設備全体が止まっていると報告があります。ネットワーク、ハードウェア、設定のそれぞれについてサブケースを起票し、それぞれ別々に対応し、すべてが上に向かって解決されていきます。サブケースがすべて終わるまで、親ケースは完了しません。

2つ目:履歴。先月クローズしたケースがあり、同じ問題が再び起きました。新しいケースは元のケースを指し返すので、それを開いた人は誰でも、これが以前にも起きたこと、そしてそのとき何をしたかを確認できます。

自己参照には、モジュール7でリレーションを扱うときに戻ってきます。

取引先と取引先責任者が、両方の図で同じ位置にあることに注目してください。同じレコードだからです。営業担当者とサービス担当者は、家の別々の側から同じ顧客を見ているのです。これが標準にとどまることの最も強い論拠の一つです。モデルは出会うように作られているのです。

レコード上のすべてが項目というわけではありません。契約書、写真、PDF、スプレッドシートはファイルであり、従来の仕組みである古い添付ファイルのモデルではなく、Salesforceファイルに置くべきものです。ドキュメントがすでにSharePoint Online、OneDrive、Google Drive、Boxにあるなら、Files Connectを使えば、ユーザーはそれをSalesforceにコピーせずにSalesforceから利用できます。

ファイルはレコードとは別に数えられます。Salesforceはストレージを2つに分けています。ファイルストレージには添付ファイル、ファイル、Salesforce CRM Content、Chatterのファイルなどが入り、データストレージにはレコードが入ります。すべてのレコードに写真やスキャンが付くと、ファイルストレージは急速に増えます。ですから、フィールドアプリの写真のような大量の画像は、Salesforceの外に完全に置き、Salesforceにはリンクだけを持たせるのがふさわしいことがよくあります。これにはモジュール4で戻ってきます。

データストレージも、データベースとは数え方が違います。普通のデータベースでは、2列で100万行のテーブルは小さく、100列で100万行のテーブルは巨象です。Salesforceはどちらも同じ重さとして扱います。ほとんどのレコードは、項目がいくつあっても、約2 KBとして数えられます。 例外もあります。キャンペーンはそれより多く数えられ、メールメッセージは実際のサイズで数えられ、個人取引先は取引先であり取引先責任者でもあるので、約4 KBとして数えられます。

一つコツを紹介しましょう。新しい組織に入るたびに、私が最初に見に行く場所の一つが設定 → ストレージの使用状況です。最初の打ち合わせで、お客様にそのスクリーンショットを頼むことさえあります。あの画面は嘘をつきません。どのオブジェクトが増えているのか、そしてどれがすでに巨象になっているのかを教えてくれます。

個人取引先:顧客が個人のとき

Section titled “個人取引先:顧客が個人のとき ”

取引先と取引先責任者のモデルは、会社とそこにいる人々については見事に機能します。でも、顧客が会社ではなかったら? 個人だったら?

それが個人取引先です。個人のために、取引先と取引先責任者を1つのレコードにまとめたものです。取引先責任者の項目も一緒についてきて、カスタム項目は独自の接尾辞__pcで表示されます。1件ごとに取引先と取引先責任者の両方のストレージに数えられます。その下では両方だからです。

有効にする前に一つ警告しておきます。個人取引先は、一度有効にすると無効にできません。 これは第1章の可逆性テストの最も純粋な形です。それがいつ割に合うのかについての私の立場は、モジュール5で紹介します。

ここでアーキテクトが決めること

Section titled “ここでアーキテクトが決めること ”
  • 新しいものを設計する前に、ビジネスのどの部分をSalesforceがすでにモデリングしているか。
  • ある概念がSalesモデル、Serviceモデル、あるいはその両方のどこに収まるか。両者が取引先と取引先責任者を共有していることを踏まえて。
  • ドキュメントや画像をどこに置くか:Salesforceファイル、接続されたファイルシステム、あるいはリンクを付けてプラットフォームの外に。
  • データがストレージ上でどれだけのコストになるか。Salesforceの数え方、つまり列ではなくレコードで数えて。
  • オフにできないものをオンにする前に、顧客が会社なのか個人なのか。

では、必要なものがSalesforceにないときは? 自分で作ります。それが次のモジュールです。