|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 21 Mar 2005 13:01:25 To : Alexander Pashchenko Subject : Re: Алгоритм построения треда -------------------------------------------------------------------------------- Alexander Pashchenko -> All @ Mon, 21 Mar 2005 01:55:22 +0300: AP> Задумал писать форум. Чисто для себя, для души. Простенький, лишь бы мне AP> нравился. Есс-но на перле. БД - MySQL. AP> В общем пока проектирую только, но уже задумался: а как строить треды? Это хорошо, что ты задумался еще на стадии проекта... Мой довольно богатый на эту тему опыт показывает, что в общем виде (т.е. с возможностями ньюсридера, и вообще почти с какой угодно настройкой вывода тредов) задача близкая к неразрешимой. Hу разве что у тебя туда один запрос в минуту, не чаще. Если хочешь, чтобы работало быстро, следует выбрать один способ вывода тредов и соптимизировать базу под него. При этом вместо поля ReplyTo, хранящего ссылку на одно сообщение (или в дополнение к оному) следует держать поле ReplyPath, отражающее путь по дереву треда к данному сообщению от корневого сообщения треда. Можно сделать несколько способов вывода, если для каждого держать свой ReplyPath, но понятно, что весьма ограниченное их количество. По каждому такому полю должен быть индекс, позволяющий эффективно делать LIKE some_prefix% и ORDER BY. В остальном - надо уже более подробно смотреть, что тебе нравится, а что нет. Hо в общем виде задача решается либо гейтом в ньюсы, либо написанием ньюсридера на клиентском скрипте. Второе - либо PerlScript, что, мягко говоря, не к каждому браузеру прикручено, либо проще застрелиться. AP> Есть таблица Messaes с полями AP> ID (уникальный номер сообщения) AP> Forum (ссылается на Forum.ID - к какому форуму относиться сообщение) AP> Author (ссылается на Users.ID - кто написал) AP> ReplyTo (ссылается на Messages.ID - т.е. на какое сообщение это ответ. AP> Если==0, то это исходное сообщение (или лучше NULL?) ) Date (дата AP> написания) Body (тело) -- Artem Chuprina RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru Весь юникс для того и был придуман, чтобы PS в принтер выплевывать. Alex Korchmar в <a63nn3$ef7$1@alx.private> --- ifmail v.2.15dev5.3 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/34260183000b4.html, оценка из 5, голосов 10
|