Nested Sets и Форум (проблемы с сортировкой и разбитьем на страницы)

rembo

Новичок
Nested Sets и Форум (проблемы с сортировкой и разбитьем на страницы)

Собственно стоит ли затевать вообще движок форумов на основе Nested Sets? Хочу заранее оговориться что вариант движка линейного форума не рассматривается, нужны деревья.

На самом деле я уже затеял но столкнулся с очевидными проблемами:
1. Сортировка дочерних веток одного уровня по дате модификации самой ветки и ёё потомков. Вижу решение в введении отдельного уникального сортировочного поля навроде датавремя + уникальный составной id. Но это подразумевает обновление всех родительских полей сортировки при вставке или модификации любой из дочерних веток.
2. Разбивка на страницы веток в которых слишком много потомков следующего уровня. А тут даже ума не приложу как это может выглядеть.

Так вот развивать ли эту идею дальше? Боюсь что в итоге выигрыш в производительности от nested sets сведется к минимуму )
 

crocodile2u

http://vbolshov.org.ru
Прошу прощения за легкий оффтоп, но:
лично мне не нравятся форумы-деревья. Обсуждение становится слишком запутанным.
 

Фанат

oncle terrible
Команда форума
а не пробовал просто писать путь к каждойветке?
скажем, паддить айди скажем, 6 нулями
получается поле path
0000001
00000010000002
0000003
00000030000004
000000300000040000005

и так далее.
дерево строится одним запросом => постраничка и сортировки делаются легко.
остается только проблема с сортировкой по дате последнего обновления, но это тоже решается джойном к самой себе, я думаю. Ну, или апдейтом корневого сообщения, что даже проще
 

rembo

Новичок
Автор оригинала: Фанат
а не пробовал просто писать путь к каждойветке?
скажем, паддить айди скажем, 6 нулями
получается поле path
хм, а есть какие-то на работки на эту тему? класс или описалово какое?

т.е. с нестед сетс лучше не париться?
 

Фанат

oncle terrible
Команда форума
не знаю, париться или не париться. я просто предложил
класс и наработки никакие не нужны, вроде - всё, что надо, я, вроде, описал?
 

vafel

Новичок
можно поле сортировки из даты модификации составлять
дата1дата2дата3
дата1дата2дата4
это конечно длинее чем падами но тоже работать будет )
п.с это поле выкинь в другую таблицу со связью 1-1 и индекс сделай

-~{}~ 31.03.05 15:23:

п.с. ай ди падить не проканает если допускается перенос веток
 

Фанат

oncle terrible
Команда форума
проканает.
сортировать надо все равно по айди ветки, а потом уже по пути. поскольку ветки надол сортировать по убыванию, а внтури веток - по возрастанию
 

su1d

Старожил PHPClubа
rembo
я делал форум на nested sets.

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

тем не менее, 30-50 тыс. сообщений вообще не давали нагрузки на сервер.
однако, по достижении 100-120 тыс. мессаг пришлось почистить базу, удалив старые топики, и сбросив кол-во сообщений опять к 30 тысячам.
 
Сверху