Screjet, в отличии от Nested Sets всю таблицу перестраивать не надо, только информацию о узлах, связанных с перемещаемым узлом.
Главный недостаток, это большой объём хранимых данных.
Я дополнительно поддерживаю ещё и таблицу хранения связей каждого узла с его предками. Благодаря этому даже самые сложные операции по модификацией дерева укладываются в 3 - 4 быстрых SQL запроса, а выборка дерева в 1 SQL запрос (в любом направлении).
И того получаем 3 таблицы, хотя таблицы связей можно объединить в одну (путём добавления ещё одного столбца), но от этого будет только путаница, трудноуловимые ошибки при разработке API и дополнительное повышение объёма хранимых данных.