我已将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的值。
答案 0 :(得分:2)
这看起来像是Adjacency list
和nested sets
的混合。
Nested sets
是在关系数据库中存储树的更好方法。
很难解释你必须看here和here的原则。
使用nested sets
时,您不需要parent_id
。
我认为jstree提供了一个样本表,您可以自己选择使用哪种技术。
在数据库中存储树的另一种方法是Closure Table。 这是我个人的最爱。它很简单但功能强大。但是你几乎没有在网上找到任何关于它的东西。