2013-01-23 64 views
1

,現在我想明白該表中不同的列:Jstree我在我的應用程序集成Jstree表定義

CREATE TABLE IF NOT EXISTS `tree` (
    `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, 
    `parent_id` bigint(20) unsigned NOT NULL, 
    `position` bigint(20) unsigned NOT NULL, 
    `left` bigint(20) unsigned NOT NULL, 
    `right` bigint(20) unsigned NOT NULL, 
    `level` bigint(20) unsigned NOT NULL, 
    `title` text CHARACTER SET utf8 COLLATE utf8_unicode_ci, 
    `type` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ; 

這是由該網站提供的默認表。

現在,如果想要添加一個節點,我該如何知道左,右和水平的值。

回答

2

這看起來像是Adjacency listnested sets的混合。

Nested sets是將樹存儲在關係數據庫中的更好方法。 很難解釋你必須看的原理herehere。當您使用nested sets時,您不需要parent_id。 我認爲jstree提供了一個樣本表,您可以自己選擇使用哪種技術。

將樹存儲在數據庫中的另一種方式是Closure Table。 這是我個人的最愛。它很簡單但很強大。但你很難在網上找到任何有關它的信息。

+0

感謝您的回覆。但我真的不想重組我的桌子。我只需要知道左邊的兩列,就在上面的表格中。 –

+0

你讀過關於嵌套集嗎?在那裏您可以找到關於左右列的解釋。 – bitWorking