3
7

More than 1 year has passed since last update.

【Salesforce】【資格】デベロッパー勉強メモ:データモデリング

Last updated at Posted at 2021-09-26

デベロッパー試験勉強時にまとめたメモ書きです。内容が間違っていたら優しくご指摘ください。
他投稿はデベロッパー試験に関する記事からどうぞ。

あくまでも個人のメモ書きなので信用しすぎてはいけません。
参考にSalesforce公式ページを載せていますので、最新かつ正しい情報をご確認ください。

標準オブジェクトの必須項目

  取引先:Name
  取引先責任者:LastName
  商談:Name、CloseDate、StageName
  商談商品:OppID、Quantity
  商品:Name
  ToDo:Subject
  ユーザ:UserName、LastName、FirstName、Emailなど
  価格表:Name
  価格表エントリ:UnitPrice、Product2ID、PriceBook2ID 
   ※価格表にリストされる商品とその価格
  キャンペーン:Name
  キャンペーンメンバー:CampaignID、LeadID、ContactID

項目はAPI名で書いていますが、表示ラベルも覚えておいたほうがいいかもです。

項目データ型の型

  String   自動採番、テキスト、URL、電話、メール、選択リスト
  Decimal  通貨
  Location  地理位置
  Boolean  チェックボックス
  Date    日付
  DateTime 日付日時

項目データ型の変更でデータが失われる可能性があるもの

  日付型 → 日付/時間型
  日付/時間型 → 日付型
  他の型 → 数値型
  他の型 → 通貨型
  他の型 → パーセント型
  他の型 → チェックボックス型
  他の型 → 選択リスト (複数選択)
  選択リスト (複数選択) 型 → 他の型
  自動採番型 → 他の型
  テキスト以外の型 → 自動採番型
  テキスト → 選択リストに変更する
  テキストエリア (ロング) 型 → メール、電話、テキスト、テキストエリア、URL 以外の型

選択リスト → 選択リスト(複数選択)について
 *現在定義されている選択リスト値は維持
 *定義にない値はレコードから削除

リレーション

1オブジェクト 階層 親削除 積み上げ集計 セキュリティ
主従 2個まで 3レベル 不可 親を継承
参照 40個まで 複数レベル ①空②子も削除③不可 不可 親と別

・積み上げ集計:子レコードについて件数または指定項目の合計、最大、最小を取得できる
★特殊★積み上げ集計が使用できる標準オブジェクト
   取引先ー商談
   商談ー商談商品
   キャンペーンーキャンペーンメンバー

上記は参照関係ではないのでセキュリティは別で、積み上げ集計を作成できます!!
ひっかけ問題に注意!!

・クロスオブジェクト数式:アクセス権不要で10レベル上までの親レコードの値を取得できる

#特殊なリレーション
・多対多かつ孤立するレコード無し          →連結オブジェクト(主従関係2つ)
・親が外部オブジェクト、子が標準orカスタムor外部  →外部参照関係項目  
・親が標準orカスタム、子→外部オブジェクト     →間接参照関係項目

カスタム設定

・リストカスタム設定:国コードなど
  例)Apexでのカスタム設定データの取得

  Map<String_dataset_name, CustomSettingName__c> mcs = CustomSettingName__c.getAll();

・階層カスタム設定:ユーザ・プロファイル設定など
  例)Apexでのプロファイルと紐づくカスタム設定データの取得 

CustomSettingName__c mc = CustomSettingName__c.getInstance(Profile_ID);

  例)Visualforceでの実行ユーザに紐づくカスタム設定データの取得

{!$Setup.CustomSettingName__c.CustomField__c} 

この時ユーザIDを渡したりする必要がないので注意

Big Object

・標準:Salesforce によって定義され、Salesforce 製品に含まれるオブジェクト
・カスタム:[設定] でカスタム Big Object を作成し、定義や項目、インデックスを設定できる
・Big Objectのクエリ
 ①返されるデータが少量であることがわかっている場合、結果をすぐに返す必要がある場合 →SOQL
 ②クエリ対象のデータが非常に大きいためにリアルタイムで結果を待てない場合 →非同期SOQL
 ※!=、LIKE、NOT IN、EXCLUDES、INCLUDES 演算子、集計関数は無効です。    

その他

・マルチ通貨を使用しているときの積み上げ集計:通貨は主レコードを踏襲(従レコードの値変換→合計)
・商談、ケース、ソリューション、リードのフェーズや状況の項目はレコードタイプで使用できない
・項目削除は使用場所の除外をしてから

参考

↓Salesforce公式の開発者ガイドやヘルプページなどのリンクになっています
項目データ型の変更
連結オブジェクト
外部オブジェクトリレーション
カスタム設定
Big Object
Big Objectのクエリ

デベロッパー試験に関する記事

Salesforce 認定 Platform デベロッパー 合格までのあれこれ
デベロッパー勉強メモ:Salesforceの基本
デベロッパー勉強メモ:データモデリング ←当記事
デベロッパー勉強メモ:プロセスの自動化とロジック①
デベロッパー勉強メモ:プロセスの自動化とロジック②
デベロッパー勉強メモ:ユーザインタフェース
デベロッパー勉強メモ:テスト、デバッグ、リリース 

3
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
7