[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Восстановление структуры дерева NESTED SETS
p.pavluxa
Здравствуйте, уважаемые пользователи форума!

Имеется таблица:

CREATE TABLE IF NOT EXISTS `Users` (
`iID` int(11) NOT NULL AUTO_INCREMENT COMMENT '№',
`iReferrerID` int(11) unsigned DEFAULT NULL COMMENT '№ реферера',
`iTreeLeftKey` int(11) NOT NULL DEFAULT '0' COMMENT 'Левый ключ в дереве',
`iTreeRightKey` int(11) NOT NULL DEFAULT '0' COMMENT 'Правый ключ в дереве',
`iTreeLevel` int(11) NOT NULL DEFAULT '0' COMMENT 'Уровень вложенности в дереве',
...
PRIMARY KEY (`iID`),
KEY `Tree` (`iReferrerID`,`iTreeLeftKey`,`iTreeRightKey`,`iTreeLevel`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Пользователи' AUTO_INCREMENT=1 ;


Необходимо восстановить структуру дерева NESTED SETS (обновить значения iTreeLeftKey, iTreeRightKey, iTreeLevel) исходя из записей в таблице. `iReferrerID` - ID родителя.

Какие есть варианты?



Спустя 12 минут, 47 секунд (30.08.2012 - 21:57) Invis1ble написал(а):
Это тестовое задание такое?

Спустя 2 минуты, 28 секунд (30.08.2012 - 22:00) p.pavluxa написал(а):
Не понял о чём Вы. Просто со структурой разобрался а у меня скрипт её переодически лоимает и нужно восстанавливать.

Спустя 14 минут, 21 секунда (30.08.2012 - 22:14) Invis1ble написал(а):
Ну так править баганутый скрипт надо прежде всего, разве нет? )
По поводу восстановления - читай про MPTT и релизуй алгоритм в коде.

Спустя 1 час, 19 минут, 46 секунд (30.08.2012 - 23:34) p.pavluxa написал(а):
Скрипт править можно, но на в моём случае. А готового ничего нету? Обычного вложенного запросика например. Который пробижиться во всей иерархии и расставит индексы как нада

Спустя 12 минут, 49 секунд (30.08.2012 - 23:47) Placido написал(а):
Готовое, уверен, есть. Но это готовое искать нужно. Проще написать самому. И в случае MySQL одним запросом здесь не обойдешься.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.