私は Github の JsTree 安定バージョンを使用しており、ディスカッション、ファイル、タグ付けする連絡先など、各カテゴリのテーブルにデータを保持するのに十分動的になるようにロジックを追加しようとしています。タグ付けシステム。
私の質問は基本的に、次のDB設計が「コピー」操作の実行を妨げている可能性があるかどうかです:
`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 に一致するレコードの最小値と最大値を取得します。このようにして、操作との相互作用ごとに、「左」と「右」の最初の 2 つのレコード値を更新しています。他のすべての操作が機能するのに、コピー/貼り付けが機能しない理由を誰かが理解するのを手伝ってくれませんか? ありがとう。