
Salesforce のデータ設計の考え方 (標準オブジェクト-補足事項)
データ設定の考え方というか、標準オブジェクトを使えと言う話に終始してしまったんですが、今日はエンジニア的なちょっとした補足事項を載せておきます。
標準オブジェクトは特別
標準オブジェクトは特別なんです。内部仕様についてはここで述べることはできないのですが、特別であるということはお伝えします。
何が特別かというと、Salesforce Platform 上に標準的な枠組みで最初から作っておいただけのデータモデルではないということです。カスタムオブジェクトでまったく同じものを実現することはできないんです。
データベースの初期セットアップをしたら、自動的にテーブルができている、みたいな話を書きましたが。あれは厳密に言うとまちがっています。標準オブジェクトとは、ただ単純にテーブルの初期設定が成されているだけではありません。
イメージ的に伝えるとすると、標準オブジェクトはハイスペックなハードウェア上に定義されているデータベース、カスタムオブジェクトはロースペックなハードウェア上に定義されているデータベースといっても過言ではありません(過言)。しかも、カスタムでは定義できない特殊な機能まで実装していたりします。
例えば。標準オブジェクトでは参照関係として定義されているのに、主従関係でしか利用できない積み上げ集計などの機能が利用できます。また主従関係を結ぶ場合に、標準オブジェクトを「従」とすることはできません。
ナレッジオブジェクトなんて特殊すぎて、何が起きてるのかすら分かりません。活動オブジェクトは複雑すぎて手出しもできません。
そして何より、インデックス性能が異なります。
こちらの、Pre-sales の私が大元を作って、Post-sales のメンバーが寄ってたかって事例を追加してくれた対策ガイドをご覧ください。
1-3 のインデックスの条件が一目瞭然です。

標準インデックスでは全体の 30%が、カスタムインデックスでは全体の10%がインデックスヒットの条件となっています。標準オブジェクトの方が明らかにインデックスキャッシュエリアが広く割り当てられています。
標準で定義されるSalesforceのそれは、特別なんです。
Sales Cloud や Service Cloud のライセンスが高いからと言って、 Lightning Platform Starter や Plus のライセンスで、商談を始めとする標準オブジェクトのコピーを作ったとしても、同じように利用することはできないのです。
だから、標準オブジェクトとして定義されたものを必ず使いましょう。標準機能を使うことで、Salesforce のリソースをあまねく使いこんだり、特殊機能の恩恵を受けられるように実装されているからです。
だからこそ、「標準」オブジェクトを使うことを前提に、データ設計しましょう。しょっさんとの約束だ。
いいなと思ったら応援しよう!
