Статья на редкость интересная. Не в том смысле, что интересные фрагменты встречаются редко.
Порадовали конкретные SQL-запросы для выполнения конкретных задач.
Скажите, а кто-либо использует эту схему для своих сайтов?
Интересует, как nested sets можно сравнить со схемой, которая применяется для GForge (
http://gforge.org/):
id_topic    Номер узла, auto_increment, наш primary key.
sort_order    Порядок сортировки, +/- 10.
id_parent    Вышестоящий узел.
id_parent_root    Вышестоящий узел второго уровня вложенности. Если для данного узла такого уровня нет - тогда 0.
cnt_subtopic    Количество узлов внутри данного узла. Для вывода на экран "тема такая-то (10)"
ids_fullpath    Полный путь узла, разделенный каким-нибудь простым способом. Например запись " 10 :: 23 :: 45 " означает "45-й узел внутри 23-го, 23-й внутри 10-го, 10-й - самый главный и он же в id_parent_root)
Выбор фрагмента ветки любого уровня производится с помощью запроса:
SELECT ids_fullpath FROM table 
WHERE ids_fullpath LIKE "% 23 %"
Пример полученного списка:
10 :: 23 
10 :: 23 :: 45
10 :: 23 :: 45 :: 50
Выбор всей ветки:
SELECT ids_fullpath FROM table 
WHERE id_parent_root = "10"
Обновление и добавление несложное - одна php-функция просто добавляет строку 
без ids_fullpath, другая - рекурсивная, пересчитывает ids_fullpath 
для только что вставленного id_topic и, если потребуется, для всей ветки, начиная c последнего узла (45), 
заканчивая первым, root (10).
Содержимое таблицы:
id_topic id_parent id_parent_root cnt_subtopic ids_fullpath
10       0         0              3            10 
23       10        10             2            10 :: 23 
45       23        10             1            10 :: 23 :: 45 
50       45        10             0            10 :: 23 :: 45 :: 50
Примерно такая схема применяется сегодня на sourceforge.net, freshmeat.net.
Только там базы PostgreSQL, поэтому значение для поля cnt_subtopic 
вычисляется автоматически при обновлении дерева с помощью хранимой процедуры.