dllweb
@dllweb

Как перемещать категории, мучаюсь 3-й день?

Очень хочется понять что происходит, на самом деле, когда узел перемещается в структуре иерархии nested set
nestedsets3.gif
На картинке, допустим мы смещаем Ветку "Snr.Developer" в Customer Service
Это выходит что смещение влево и так же хочется понять алгоритм или закономерность смещений
допустим смещение ветки вправо Customer Service в Development Manager

Я даже рисовал схему в пейнте, перемещал пересчитывал, пробовал так как это выходит на картинке, но нет, всегда что-то идет не так, подскажите где достать информацию в более менее ясной форме про очень подробное разъяснение Nested set

P.S: В таблице имеются поля только id category_name left_key right_key
  • Вопрос задан
  • 180 просмотров
Пригласить эксперта
Ответы на вопрос 1
neuotq
@neuotq
Прокрастинация
А что конкретно не ясно, вроде модель простая. В классическом nested sets при перестановке нужно пересчитывать все дерево(поддерево). Я уже не помню где сам читал простое объяснение(это было давно), но вот здесь вроде достаточно понятно объясняется www.poiu.ru/lessons/index.php-18.htm
Короче просто пересчитываешь значение left_key right_key исходя из новых реалий.
В целом ставка новых элементов относительно дорогое удовольствие в этой моделе.
Поэтому есть улучшенная версия алгоритма и модели nested intervals, вот пример из yii2 https://github.com/paulzi/yii2-nested-intervals , она правда уже реально сложнее для понимания.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы