|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexander Pashchenko 2:5062/36 21 Mar 2005 02:55:22 To : All Subject : Алгоритм построения треда --------------------------------------------------------------------------------
Задумал писать форум. Чисто для себя, для души. Простенький, лишь бы мне
нравился. Есс-но на перле. БД - MySQL.
В общем пока проектирую только, но уже задумался: а как строить треды?
Есть таблица Messaes с полями
ID (уникальный номер сообщения)
Forum (ссылается на Forum.ID - к какому форуму относиться сообщение)
Author (ссылается на Users.ID - кто написал)
ReplyTo (ссылается на Messages.ID - т.е. на какое сообщение это ответ. Если==0,
то это исходное сообщение (или лучше NULL?) )
Date (дата написания)
Body (тело)
Пока думаю так.
Это выбор треда:
0) SELECT * FROM Messages WHERE ReplyTo=0 AND Forum=$CURRENT_FORUM
1) Запоминаем ID нужного сообщения (того, тред по которому хочет посмотреть
юзер)
2) SELECT * FROM Messages WHERE ReplyTo=запомненное_id AND Forum=$CURRENT_FORUM
3) запомнить все найденные записи
4) вывести i-ю (запомненное_id=найденные_записи[i].id
5) увеличить i
6) ежели не последняя в списке повторить с пункта 2.
(алгоритм может содержать ошибки, т.к. уже поздно и я плохо соображаю)
Думаю в целом понятно, что он делает.
Минусы: на экране сразу весь тред, что не очень удобно и очень мне не нравиться.
Большое потребление памяти. Большое количество запросов к базе. Как следствие -
тормознутость.
Хотелось бы оптимизации. А тут я пас. Сколько можно выжать оптимизации из
SQL-запроса, сколько из перла? Кто подскажет готовые решения?
Я уже не соображаю :(
Gxis revido _All_!
... Win2k uptime: 0d 0h 5m 31s 857ms
--- Phone(44373) Pager(005)3880173 E-mail(point212<at>mail.ru) ICQ(1911486)
* Origin: В сети каждый показывает своё истинное лицо. (2:5062/36)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/1845423e0213.html, оценка из 5, голосов 10
|