SlideShare a Scribd company logo
1 of 21
Download to read offline
Force.comで
親子関係を実現する
   ちょっと
 変わったやり方
自己紹介
•   名前:
     米井 孝浩
•   TwitterID:
      yonet77
•   所属:
     TAOドライブ株式会社
•   Force.com開発歴:
      3年くらい前から?
突然ですが、
「階層構造」をもった
データを、どうやって
表現してますか?
階層構造をもつデータって?
                    例)組織、製品
     祖父


親1        親2


     子1        子2
主従関係を使う
  •   自身に対して、主従関係
      は結べない...
参照関係を使う
  •   自身に対して、参照関係
      は定義できる
  •   SOQLで親は5段階上まで
  •   SOQLで子は1段階下まで
今日は別の方法を
ご紹介します
"入れ子集合モデル"
"入れ子集合モデル"って??
このサイトで詳しく説明してます。
http://www.geocities.jp/mickindex/
database/db_tree_ns.html
メリット
1.階層の深さに制限がない

左値と右値で階層を表現する
だけなので、参照関係のよう
な階層の深さに制限はない
2. 親子関係の定義が不要

左値と右値で階層を表現する
だけなので、親レコードを気
にしなくてよい
デメリット
1.データ操作が複雑(少し)

子を挿入、親を変更...と
階層構造を編集するとき、
左値と右値の計算が常に必要
入れ子集合モデルの実装
- データモデル
1. 左値と右値は必須
2. 階層の深さは任意
入れ子集合モデルの実装
- 子の挿入
             1         AAA           4
AAA

      BBB          2   BBB    3

      CCC

 "AAA"からみて   1         AAA           6
 "CCC" を追加
                 2 BBB 3   4 CCC 5
入れ子集合モデルの実装
- 兄弟の挿入
             1         AAA           4
AAA

      BBB          2   BBB    3

      CCC

 "BBB"からみて   1         AAA           6
 "CCC" を追加
                 2 BBB 3   4 CCC 5
入れ子集合モデルの実装
- 兄弟の入れ替え(=行移動)
AAA         1         AAA           6
      BBB
                2 BBB 3   4 CCC 5
      CCC

AAA
            1         AAA           6
      CCC
                2 CCC 3   4 BBB 5
      BBB
入れ子集合モデルの実装
- 子の削除
AAA          1         AAA           6
      BBB
                 2 CCC 3   4 BBB 5
      CCC

 "CCC" を削除
             1         AAA           6

                 2 CCC 3
入れ子集合モデルの実装
- 親子データの取得
AAA
                  1          AAA             8
      BBB
                      2 BBB 5      6 CCC 7
            DDD
      CCC              3 DDD 4

• "AAA"以下の要素を全て取得する
  → LFT >= 1 and RGT <= 8 の要素を取得する
• "BBB"以下の要素を全て取得する
  → LFT >= 2 and RGT <= 5 の要素を取得する
<デモ>
- Force.comの上で動かしてみます




    http://fblg.jp/article/466/kirakira16/pc/6310610/4278617.jpg

More Related Content

More from Takahiro Yonei

SalesforceとHerokuのより良い関係を目指して(たぶん序章)
SalesforceとHerokuのより良い関係を目指して(たぶん序章)SalesforceとHerokuのより良い関係を目指して(たぶん序章)
SalesforceとHerokuのより良い関係を目指して(たぶん序章)Takahiro Yonei
 
HerokuとSalesforceで例えばこんなCMSでも (LT資料)
HerokuとSalesforceで例えばこんなCMSでも (LT資料)HerokuとSalesforceで例えばこんなCMSでも (LT資料)
HerokuとSalesforceで例えばこんなCMSでも (LT資料)Takahiro Yonei
 
EC-CubeをHerokuでも
EC-CubeをHerokuでもEC-CubeをHerokuでも
EC-CubeをHerokuでもTakahiro Yonei
 
ApexトリガのBest Practiceを目指して
ApexトリガのBest Practiceを目指してApexトリガのBest Practiceを目指して
ApexトリガのBest Practiceを目指してTakahiro Yonei
 
Tokyo SFDG Meetup#16 / Release Note, Einstein Platform Service
Tokyo SFDG Meetup#16 / Release Note, Einstein Platform ServiceTokyo SFDG Meetup#16 / Release Note, Einstein Platform Service
Tokyo SFDG Meetup#16 / Release Note, Einstein Platform ServiceTakahiro Yonei
 
Meetup #15 : リリースノート輪読 / Apexまわり
Meetup #15 : リリースノート輪読 / ApexまわりMeetup #15 : リリースノート輪読 / Apexまわり
Meetup #15 : リリースノート輪読 / ApexまわりTakahiro Yonei
 
カスタムメタデータを受託の案件で使ってみた話
カスタムメタデータを受託の案件で使ってみた話カスタムメタデータを受託の案件で使ってみた話
カスタムメタデータを受託の案件で使ってみた話Takahiro Yonei
 
Visualforceをあきらめない
VisualforceをあきらめないVisualforceをあきらめない
VisualforceをあきらめないTakahiro Yonei
 
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)Takahiro Yonei
 
Salesforce dug tokyo_meetup#8_about_releasenote
Salesforce dug tokyo_meetup#8_about_releasenoteSalesforce dug tokyo_meetup#8_about_releasenote
Salesforce dug tokyo_meetup#8_about_releasenoteTakahiro Yonei
 
SDUG Tokyo Meetup#7 About ReleaseNote
SDUG Tokyo Meetup#7 About ReleaseNoteSDUG Tokyo Meetup#7 About ReleaseNote
SDUG Tokyo Meetup#7 About ReleaseNoteTakahiro Yonei
 
DCMax CrowdHackathonチャレンジ②
DCMax CrowdHackathonチャレンジ②DCMax CrowdHackathonチャレンジ②
DCMax CrowdHackathonチャレンジ②Takahiro Yonei
 
Salesforce DUG Tokyo meetup#5
Salesforce DUG Tokyo meetup#5Salesforce DUG Tokyo meetup#5
Salesforce DUG Tokyo meetup#5Takahiro Yonei
 
Force.com Developer Group Japan Meetup#1
Force.com Developer Group Japan Meetup#1Force.com Developer Group Japan Meetup#1
Force.com Developer Group Japan Meetup#1Takahiro Yonei
 

More from Takahiro Yonei (15)

SalesforceとHerokuのより良い関係を目指して(たぶん序章)
SalesforceとHerokuのより良い関係を目指して(たぶん序章)SalesforceとHerokuのより良い関係を目指して(たぶん序章)
SalesforceとHerokuのより良い関係を目指して(たぶん序章)
 
HerokuとSalesforceで例えばこんなCMSでも (LT資料)
HerokuとSalesforceで例えばこんなCMSでも (LT資料)HerokuとSalesforceで例えばこんなCMSでも (LT資料)
HerokuとSalesforceで例えばこんなCMSでも (LT資料)
 
EC-CubeをHerokuでも
EC-CubeをHerokuでもEC-CubeをHerokuでも
EC-CubeをHerokuでも
 
ApexトリガのBest Practiceを目指して
ApexトリガのBest Practiceを目指してApexトリガのBest Practiceを目指して
ApexトリガのBest Practiceを目指して
 
Tokyo SFDG Meetup#16 / Release Note, Einstein Platform Service
Tokyo SFDG Meetup#16 / Release Note, Einstein Platform ServiceTokyo SFDG Meetup#16 / Release Note, Einstein Platform Service
Tokyo SFDG Meetup#16 / Release Note, Einstein Platform Service
 
Meetup #15 : リリースノート輪読 / Apexまわり
Meetup #15 : リリースノート輪読 / ApexまわりMeetup #15 : リリースノート輪読 / Apexまわり
Meetup #15 : リリースノート輪読 / Apexまわり
 
カスタムメタデータを受託の案件で使ってみた話
カスタムメタデータを受託の案件で使ってみた話カスタムメタデータを受託の案件で使ってみた話
カスタムメタデータを受託の案件で使ってみた話
 
Visualforceをあきらめない
VisualforceをあきらめないVisualforceをあきらめない
Visualforceをあきらめない
 
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
 
Salesforce dug tokyo_meetup#8_about_releasenote
Salesforce dug tokyo_meetup#8_about_releasenoteSalesforce dug tokyo_meetup#8_about_releasenote
Salesforce dug tokyo_meetup#8_about_releasenote
 
SDUG Tokyo Meetup#7 About ReleaseNote
SDUG Tokyo Meetup#7 About ReleaseNoteSDUG Tokyo Meetup#7 About ReleaseNote
SDUG Tokyo Meetup#7 About ReleaseNote
 
DCMax CrowdHackathonチャレンジ②
DCMax CrowdHackathonチャレンジ②DCMax CrowdHackathonチャレンジ②
DCMax CrowdHackathonチャレンジ②
 
Salesforce DUG Tokyo meetup#5
Salesforce DUG Tokyo meetup#5Salesforce DUG Tokyo meetup#5
Salesforce DUG Tokyo meetup#5
 
Cloudforce2012 LT
Cloudforce2012 LTCloudforce2012 LT
Cloudforce2012 LT
 
Force.com Developer Group Japan Meetup#1
Force.com Developer Group Japan Meetup#1Force.com Developer Group Japan Meetup#1
Force.com Developer Group Japan Meetup#1
 

Recently uploaded

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (9)

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

Force.com Developer Group Japan Meetup#2