我正在使用来自 Github 的 JsTree 稳定版本,我正在尝试添加逻辑以使其足够动态,以将每个类别的数据保存在表中,无论是讨论、文件还是要标记的联系人,所以基本上是标记系统。
我的问题基本上是,如果以下数据库设计可以阻止执行“复制”操作:
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent_id` int(11) NOT NULL DEFAULT '0',
`user_id` int(11) NOT NULL DEFAULT '0',
`label` varchar(16) DEFAULT NULL,
`position` bigint(20) unsigned NOT NULL DEFAULT '0',
`left` bigint(20) unsigned NOT NULL DEFAULT '0',
`right` bigint(20) unsigned NOT NULL DEFAULT '0',
`level` bigint(20) unsigned NOT NULL DEFAULT '0',
`type` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`h_label` varchar(16) NOT NULL DEFAULT '',
`fulllabel` varchar(255) DEFAULT NULL,
UNIQUE KEY `uidx_3` (`id`),
KEY `idx_1` (`user_id`),
KEY `idx_2` (`parent_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
原来的样子是这样的:
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 ;
INSERT INTO `tree` (`id`, `parent_id`, `position`, `left`, `right`, `level`, `title`, `type`) VALUES
(1, 0, 2, 1, 14, 0, 'ROOT', ''),
(2, 1, 0, 2, 11, 1, 'C:', 'drive'),
(3, 2, 0, 3, 6, 2, '_demo', 'folder'),
(4, 3, 0, 4, 5, 3, 'index.html', 'default'),
(5, 2, 1, 7, 10, 2, '_docs', 'folder'),
(6, 1, 1, 12, 13, 1, 'D:', 'drive'),
(12, 5, 0, 8, 9, 3, 'zmei.html', 'default');
我们正在使用 JSON 将数据传回服务器,我在其中添加了一些小逻辑来获取与 user_id 匹配的记录的最小值和最大值。这样,我将在每次与操作交互时更新“左”和“右”的前两个记录值。有人可以帮我理解为什么如果其他所有操作都有效,复制/粘贴不起作用吗?谢谢。