Python conf in Kharkiv, Nov 16 with Intel, Elastic engineering leaders. Prices go up 21.10

Как построить Дерева каталогов NESTED SETS?

Вопрос к гуру.

Как найти красивое решение для построения в базе данных MySQL таблицы через NESTED SETS?

Есть дерево,как пример
root
.Книги
..Книги художественные
...Исторические
...До 1917
..Книги документальные
...Книги о войне
...Воспоминания
.Письма
..Письма личные
..Письма исторические
...Письма писателей
и так далее....

Как построить Дерева каталогов NESTED SETS?

Читал, читал, а все же знаний не хватает.
Понимаю, что такое надо применить.
www.php.su/...icles/?cat=phpdb&page=013
www.poiu.ru/lessons/index.php-18.htm

Кто подскажет как создать таблицу запросов?
Вывод должен быть таким.
id pid numleft numright numlevel title

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Як вже вище відмітили, closure table буде і простіше, і інтуїтивніше.
Плюс, судячи по прикладу, напрошується скорше граф тегів, які будуть характеризувати книжки.

Хіба це тестове завдання і воно поставлено саме так — зробити дерево за допомогою nested sets — тоді медицина безсила і треба вивчати приклади від Bill Karwin (також вже про нього згадували).

Bill Karwin писал по этой теме www.slideshare.net/...els-for-hierarchical-data
В его книге SQL Antipatterns nested sets описаны довольно детально. Там есть есть и другой способ — closure table, который проще, как по мне.

Для начала стоит определится действительно ли нужно использовать нестед сеты для построения иерархии и не лучше ли будет к пример вписать чайлд-перент схему, а может просто path писать. Кстати сказать не факт что имеет места иерархическая структура если уже есть разделы с книгами там чаще подходит, что-то с возможностью навесить теги.

это точно должно быть дерево, а не облако тегов?

там по ссылке на вики пример что такое nested set и как оно выглядит в таблице.
поиск по нему проще, обновление в такой структуре данных — сложный процесс.

подумайте перед использованием, зачем вам оно и какой профит принесет? как часто обновляются данные, количество данных (я думаю если их десяток то разницы в производительности вы не почувствуете), как часто чтение? Какое прикладное применение вашей задачи. Просто может быть такая структура данных over engineering для вашей задачи.

Нестед сеты почти всегда лучше, ибо большинство деревьев — это чтение

просто тут главный вопрос, зачем? какая задача?

ну судя по описанию автора — каталог

Подписаться на комментарии