Forum Webscript.Ru
Программирование => Теория, алгоритмы и стандарты => Тема начата: Xander от 23 Июля 2003, 23:29:47
-
http://db-maker.narod.ru/forum.htm
Убейте мессагу, если такое уже было.
-
хм... интересно...
соображение 1:
при выборке запросов-то два,
тока при вставке....
соображение 2:
малопонятно, зачем используется mysql_fetch_object
он немного нерационально расходует память,
к тому же,
если верить комментариям
[p]mysql_fetch_object[/p]
вот это:
while($thread=mysql_fetch_object()) ...
порождает жуткое количество объектов
это на первый взгляд...
-
Ну, конкретный код по-моему предлагается только как пример.
-
ThE0ReTiC
И еще: мне жарко, я туплю...но чему равен MAXINT?
Насколько я понимаю, количество мессаг в треде, которые можно вставить без их перенумерации пропорционально логарифму этого самого MAXINT, и для сравнительно небольшого числа 65536 составляет 16. Так что на реальном форуме потребность в ней будет возникать нечасто...
Поправьте, коли что не так.
-
...а для поля типа BIGINT UNSIGNED перенумеровывать придется ветку с более чем 64-мя сообщениями.
Вот только тут уже непонятно, не затормозит ли работа с такими числами все вставки?
-
если вас смущают торомоза при вставке, то можно форум разделить на 2 таблицы - в одной хранить дерево, во второй - данные.
Вставка в первую таблицу будет происходить быстро
Вообще данный алгоритм расчитан именно на форумы.
У меня в последнее время при работе с деревьями приходится делать такие операции
- вывод структуры дерева (в данном алгоритме это просто)
- получение дочерних узлов для указанного (по-моему в данном алгоритме это делать не удобно. Если я ничего не упустил - делается в 3 запроса)
- получение родительских узлов для указанного (вот как это сделать - я пока не вижу)
ЗЫ
кстати помнится был разговор о том что алгоритм Nested Set неудобен для форумов. Это было неудобно для класса, который я тут везде рекламировал (http://dev.e-taller.net/dbtree) потому как он может хранить лишь одно дерево в таблице и при большом форуме будет тормозить вставка.
Класс Pear:: DB :: NestedSet - позволяет хранить много деревьев в таблице, поєтому если создавать для каждого треда свое дерева, вставка сообщений заметно тормозить не должна.
-
Мда, алгоритм-то я реализовал. А вот сделать так, чтобы ответы в ветке шли сверху вниз, по дате добавления не могу. Третий день мучаюсь.
Может кто-нибудь подскажет, как это сделать?
-
Xander
а можно примерчик, в чем проблема ?
-
Как только найду халявный хостинг с MySQL - так сразу выложу, и покажу в чем именно проблема...