【问题标题】:Jstree table definitionJstree 表定义
【发布时间】:2013-01-23 10:49:45
【问题描述】:

我已经在我的应用程序中集成了 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的值。

【问题讨论】:

    标签: php jquery mysql jstree


    【解决方案1】:

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

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

    当您使用nested sets 时,您不需要parent_id。 我认为 jstree 提供了一个示例表,您可以在其中选择自己使用的技术。

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

    【讨论】:

    • 感谢您的回复。但我真的不想重组我的桌子。只是我需要知道上表左右两列。
    • 你读过嵌套集吗?在那里你可以找到关于左右列的解释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多