Имеется таблица:
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 и релизуй алгоритм в коде.
По поводу восстановления - читай про MPTT и релизуй алгоритм в коде.
Спустя 1 час, 19 минут, 46 секунд (30.08.2012 - 23:34) p.pavluxa написал(а):
Скрипт править можно, но на в моём случае. А готового ничего нету? Обычного вложенного запросика например. Который пробижиться во всей иерархии и расставит индексы как нада
Спустя 12 минут, 49 секунд (30.08.2012 - 23:47) Placido написал(а):
Готовое, уверен, есть. Но это готовое искать нужно. Проще написать самому. И в случае MySQL одним запросом здесь не обойдешься.