Jstree表定义

时间:2013-01-23 10:49:46

标签: php jquery mysql 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 ;

这是网站提供的默认表格。

现在,如果想要添加一个节点,我怎么知道left,right和level的值。

1 个答案:

答案 0 :(得分:2)

这看起来像是Adjacency listnested sets的混合。

Nested sets是在关系数据库中存储树的更好方法。 很难解释你必须看herehere的原则。

使用nested sets时,您不需要parent_id。 我认为jstree提供了一个样本表,您可以自己选择使用哪种技术。

在数据库中存储树的另一种方法是Closure Table。 这是我个人的最爱。它很简单但功能强大。但是你几乎没有在网上找到任何关于它的东西。