Как уже упоминал Себастьен, файл библиотеки - SQLite. Я покопался в своем собственном каталоге и нашел этот AgLibraryKeyword
стол. Вам нужны три столбца: id_local
, name
и parent
. Как и следовало ожидать, parent
указывает на id_local
родительского ключевого слова. В моей библиотеке ключевое слово "root" имеет id_local
73.
Итак, предположим, что у вас было что-то вроде этого:
id_local | name | parent
-----------+---------+--------
12345 | animals | 73
12346 | birds | 73
12347 | eagles | 73
12348 | parrots | 73
12349 | falcons | 73
Вы можете «исправить» иерархию следующим образом:
UPDATE AgLibraryKeyword
SET parent = (SELECT id_local FROM AgLibraryKeyword WHERE name = 'animals')
WHERE name = 'birds';
UPDATE AgLibraryKeyword
SET parent = (SELECT id_local FROM AgLibraryKeyword WHERE name = 'birds')
WHERE name IN ( 'eagles', 'parrots', 'falcons' );
Это закончится как Животные> Птицы> Орлы, Животные> Птицы> Попугаи и так далее. Стол в конечном итоге выглядит так:
id_local | name | parent
-----------+---------+--------
12345 | animals | 73
12346 | birds | 12345
12347 | eagles | 12346
12348 | parrots | 12346
12349 | falcons | 12346
Это не как руководство, как это делается вручную через пользовательский интерфейс, но все равно придется потрудиться. Должно быть так же функционально.
Я должен отметить, что, исследуя это, я несколько раз делал подобные изменения, которые, похоже, не потребовались. Я бы посоветовал сохранить ваш SQL в файл, чтобы вы могли запустить его заново, если он не работает с первого раза. И, конечно же, вы должны заранее создать резервную копию вашей библиотеки:)