ActiveRecordで多階層カテゴリ という投稿をしたところ、 @jnchito さんに Ancestry なるgemを教えていただきました。 stefankroes/ancestry Organise ActiveRecord model into a tree structure 準備 $ rails g model category name:string $ rake db:migrate mysql> desc categories; +------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+--------------+------+-----+---------+---
Tree-like data relationships are common, but working with trees in SQL usually requires awkward recursive queries. This talk describes alternative solutions in SQL, including: - Adjacency List - Path Enumeration - Nested Sets - Closure Table Code examples will show using these designs in PHP, and offer guidelines for choosing one design over another.Read less
ツリー構造データとRDB ツリー構造データをリレーショナルデータベース(RDB) で扱う場合、以下の4つのモデルが知られていました。 隣接リストモデル (Adjacency List Model) 経路列挙モデル (Path Enumeration Model) 入れ子集合モデル (Nested Sets Model) 入れ子区間モデル (Nested Intervals Model) 閉包テーブルモデル (Closure Table Model) 入れ子集合モデルは、現時点では多くのフレームワークで採用されていて、便利なライブラリが多数のデベロッパーによって開発されています。 Fertile Forest Model (肥沃な森林モデル)は、新しい発想で設計された、第五のモデルです。従来のモデルよりも、次の点で優れています。 ツリー構造データのために追加されるデータ量のコスト 検索速度
社内勉強会資料 追記: 2013-10-31 ついったで指摘( https://twitter.com/akuraru/status/395822183777202176 )を受けたので入れ子集合のノード追加の説明の所を修正しました。Read less
今回のエントリは以前かいた SQL のアンチパターン「ナイーブツリー」に関する記事の続き。 blog.amedama.jp 再帰クエリをサポートしていない RDBMS で再帰的な構造を表現するための解決策のひとつ経路列挙モデルを扱う。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.11.4 BuildVersion: 15E65 $ mysql --version mysql Ver 14.14 Distrib 5.7.12, for osx10.11 (x86_64) using EditLine wrapper 下準備 まずは下準備として MySQL にデータベースを作るところまで。 今回使ったのは Mac OS X なので MySQL は Homebrew でインストールする。 $ brew instal
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く