Построение древовидной структуры в базе данных — как заполнить дерево одним дочерним узлом за раз?

Я строю дерево в базе данных MySQL, используя список смежности, поэтому в каждой строке есть node_id и parent_id.

Со временем дерево будет заполнено данными, и мне нужно заполнить их определенным образом:

  • Каждый узел имеет максимум три дочерних узла
  • Заполните каждый узел на текущем уровне по одному дочернему элементу по горизонтали
  • После того, как все узлы на текущем уровне имеют одного потомка, вернитесь к началу текущего уровня и заполните дочерний узел 2 для каждого узла, затем повторите с последним потомком.
  • После того, как последний узел в текущем уровне имеет трех детей, начните заполнять следующий уровень таким же образом

Так что в основном мне просто нужна помощь с алгоритмом, который определит parent_id узла, который я вставляю. Я бы предпочел не пересекать дерево с каждой вставкой, так как оно будет довольно большим, но это нормально, если это единственный способ. Я строю логику в PHP, но псевдокод в порядке. Спасибо!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]