Intereting Posts
Paypal Express – добавьте скидку специальный символ в JSON Как настроить профилирование PHP на Eclipse? Корзина обновляется только один раз с использованием JQuery и Codeigniter Я хочу интегрировать аутентификацию карты Aadhaar в PHP. Я пробовал этот код для доступа к API, но я не могу получить никакого ответа Практичность нескольких баз данных для каждого клиента по сравнению с одной базой данных Использование псевдонимов столбцов в поле «Таблица заказа клиента» Защитите от инъекций и правильного синтаксиса для метода $ _GET Таймер обратного отсчета Javascript, который останавливается, когда окно не находится в фокусе Ошибка CakePHP Bake Shell: соединение с базой данных «Mysql» отсутствует или не может быть создано DomPDF: изображение не читаемое или пустое Как использовать переменные php из включенного php-файла Как правильно настроить переменную среды PHP для запуска команд в Git Bash Загрузите контент с помощью Ajax Неустранимая ошибка: вызов функции-члена fetchALL () для не-объекта – использование PDO в базе данных Microsoft Access

Двоичное дерево с использованием PHP + MySQL

Я внедряю дерево MLM для веб-сайта с использованием PHP (CodeIgniter) и MySQL. Мне нужна реализация двоичного дерева в базе данных. Следует учитывать следующие вещи:

  1. Для каждого узла минимальное количество детей / узлов в левом поддереве и количество дочерних узлов / узлов в правом поддереве называется парой. Для каждой пары один узел получает 1 пункт – который должен храниться в базе данных (узлы представляют пользователей)

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

  3. другим ограничением является каждый день, когда любой узел не может иметь более 100 точек.

  4. Мне также нужно построить (отобразить на веб-странице) дерево. Должно быть показано только 4-5 уровней.

  5. В базе данных, вероятно, будет 100000 узлов

Я нашел в основном 4 модели для внедрения гериархических данных в MySQL, PHP

  1. Список примыканий
  2. Перечисление пути
  3. Вложенные наборы
  4. Таблица закрытия

Поэтому я хотел бы найти решение, которое уменьшит накладные расходы и успешно обновит точки для всех применимых узлов.

Я попробовал решение списка смежности.

node ( id, parentid, leftChildId,rightChildId,leftCount,rightCount ) userStat(id,sdate,pairs,mlmIncome) 

каждый раз, когда вставлен один узел, я иду вверх и продолжаю увеличивать количество дочерних элементов. Если новая пара выполнена, то я увеличиваю ее и увеличиваю ее. Я делаю это с хранимыми процедурами.

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

Хотя скорость построения дерева больше, чем вставка. И вложенный набор лучше подходит для построения деревьев ..

Я в правильном направлении? Пожалуйста помоги !

Thnx в Advance!

    Этот блог может помочь вам управлять данными иерархии

    Тот, который звучит наиболее знакомым для вашего вопроса, возможно, изменен.