SlideShare a Scribd company logo
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

PDF
Sales Force Episode VI ~ Return of Ajax Toolkit ~
PDF
Apex Test Plusの紹介
KEY
Force.com developers meetup #2 夏サミ、そしてソーシャル・エンタープライズを考える
PDF
Data-Intensive Text Processing with MapReduce ch4
PDF
プログラミング講座 #2 複雑なデータの扱い
PDF
Boost.Flyweight
PDF
Web技術勉強会 20110528
Sales Force Episode VI ~ Return of Ajax Toolkit ~
Apex Test Plusの紹介
Force.com developers meetup #2 夏サミ、そしてソーシャル・エンタープライズを考える
Data-Intensive Text Processing with MapReduce ch4
プログラミング講座 #2 複雑なデータの扱い
Boost.Flyweight
Web技術勉強会 20110528

Similar to Force.com Developer Group Japan Meetup#2 (16)

PDF
社会ネットワーク分析第7回
PDF
小学生が簡単に構築出来る簡易データベースアプリ
PDF
20190625 OpenACC 講習会 第2部
PPTX
まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
PDF
実行時のデータ型の表現手法
PDF
すごいH 第12章モノイド
PDF
WPD-Fes #3 2015年のサバイバル学習術 Web開発技術の税引後利益 を最大化しよう!
PDF
Processing
PDF
勉強会資料 データ構造とアルゴリズム
PPTX
純粋関数型アルゴリズム入門
PPTX
クソザコ鳥頭が非順序連想コンテナに入門してみた
PDF
【Unity道場スペシャル 2018京都】プロなら当然!プログラミング技能解説
PDF
PFDS 10.2.1 lists with efficient catenation
PPT
アルゴリズムとデータ構造12
PPTX
関数型言語&形式的手法セミナー(3)
PDF
boost tour 1.48.0 all
社会ネットワーク分析第7回
小学生が簡単に構築出来る簡易データベースアプリ
20190625 OpenACC 講習会 第2部
まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
実行時のデータ型の表現手法
すごいH 第12章モノイド
WPD-Fes #3 2015年のサバイバル学習術 Web開発技術の税引後利益 を最大化しよう!
Processing
勉強会資料 データ構造とアルゴリズム
純粋関数型アルゴリズム入門
クソザコ鳥頭が非順序連想コンテナに入門してみた
【Unity道場スペシャル 2018京都】プロなら当然!プログラミング技能解説
PFDS 10.2.1 lists with efficient catenation
アルゴリズムとデータ構造12
関数型言語&形式的手法セミナー(3)
boost tour 1.48.0 all
Ad

More from Takahiro Yonei (15)

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

Force.com Developer Group Japan Meetup#2