|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Golyashov Sergey 2:5020/400 21 Mar 2005 18:41:50 To : Ivan Frolkov Subject : Re: Алгоритм построения треда --------------------------------------------------------------------------------
Ivan Frolkov пишет:
> Если серьезно - я в похожем случае для каждой записи хранил путь от родителя.
> Оный путь формировался как
> ид_родителя0 . ид_родителя1 . ... ._ид_собственно записи
> ид_родителяN - это некая строка - числовое представление в 16-ной форме в моем
> случае (можно и в другой), по пути был, соответственно, построен индекс, и
> выборка одного треда была тривиальной
>
> select ... from messages where path like 'xxxxxxx%' order by path
Альтернативный вариант:
Формировать путь без добваления "ид_собственно записи" и у первого
сообщения треда путь == пустая строка. Тогда запрос формировать так:
select ... from messages where (path like 'xxxxxxx%' or
id='id_первого_сообщения') order by path
Думаю не лишним будет добавить что конструкция 'xxxxxxx%' это
форматированный вид id до фиксированной длинны, т.е. с добавлением
недостающих нулей слева от id. В пути все родительские id приводятся в
этот вид и записываются через разделитель, который можно выбрать на свое
усмотрение...
--- ifmail v.2.15dev5.3
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/657752cf2990.html, оценка из 5, голосов 10
|