В чем проблема с вложенными множествами?
Пересчитывает ли значения lft / rgt, когда вы добавляете / удаляете узлы?
Вы уверены, что при небольшом тщательном планировании вы можете настроить его, так что вам придется делать только редкие пересчеты.Я на самом деле не пробовал, но однажды планировал систему (клиенту не нужна система в конце!)
Один - умножение значений, скажем, 1000, при первом их вычислении,Затем, если вы добавите узел, вы можете просто вставить числа между значениями.Только при большом количестве вставок у вас заканчиваются цифры.Пакетный процесс с низким приоритетом может пересчитать дерево для освобождения номеров для новых вставок.
Удаление также может быть заархивировано, с манипулированием числами.На самом деле узел без детей это легко.Никаких пересчетов не установлено.Становится все сложнее, если дети, но я думаю, должно быть выполнимо.