これは私が使用しているクラスです:https ://gist.github.com/2174233
2つのテーブルがあります。1つのテーブルにはユーザーが含まれ、もう1つのテーブルにはクロージャが含まれます。
メソッドを使用get_children()
すると(たとえば、ルートまたは別の親から)、階層の最初のレベルのみが表示されます。どの値をlvl
列に保存する必要がありますか?
これは私が持っているクロージャーテーブルの定義です:
CREATE TABLE closures (
id INT(11) NOT NULL AUTO_INCREMENT,
ancestor INT(11) NOT NULL,
descendant INT(11) NOT NULL,
lvl INT(11) NOT NULL,
PRIMARY KEY (id)
)
クロージャテーブルに保存するデータの例を次に示します。
INSERT INTO `closures` (`id`, `ancestor`, `descendant`, `lvl`)
VALUES (1, 1, 20, 0),
(4, 20, 26, 0),
(5, 26, 25, 0);
最後はlvl
列ですが、どの値がそこにあるのかわかりません。使い方を教えてください。
私が保存しなければならない構造には3つのレベルがあります:ルート->20ノード->26ノードですが、それは私に20ノードである最初のレベルの子だけを与えます。