Автор Тема: А вот еще про деревья нашлось  (Прочитано 5005 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
А вот еще про деревья нашлось
« : 23 Июля 2003, 23:29:47 »
http://db-maker.narod.ru/forum.htm

Убейте мессагу, если такое уже было.
•••Jah\'d never let us down!•••

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
А вот еще про деревья нашлось
« Ответ #1 : 24 Июля 2003, 10:40:12 »
хм... интересно...
соображение 1:
при выборке запросов-то два,
тока при вставке....
соображение 2:
малопонятно, зачем используется mysql_fetch_object
он немного нерационально расходует память,
к тому же,
если верить комментариям
[p]mysql_fetch_object[/p]
вот это:

while($thread=mysql_fetch_object()) ...

порождает жуткое количество объектов
это на первый взгляд...
AS IS...

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
А вот еще про деревья нашлось
« Ответ #2 : 24 Июля 2003, 12:43:40 »
Ну, конкретный код по-моему предлагается только как пример.
•••Jah\'d never let us down!•••

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
А вот еще про деревья нашлось
« Ответ #3 : 24 Июля 2003, 13:02:25 »
ThE0ReTiC
И еще: мне жарко, я туплю...но чему равен MAXINT?

Насколько я понимаю, количество мессаг в треде, которые можно вставить без их перенумерации пропорционально логарифму этого самого MAXINT, и для сравнительно небольшого числа 65536 составляет 16. Так что на реальном форуме потребность в ней будет возникать нечасто...

Поправьте, коли что не так.
•••Jah\'d never let us down!•••

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
А вот еще про деревья нашлось
« Ответ #4 : 24 Июля 2003, 13:10:41 »
...а для поля типа BIGINT UNSIGNED перенумеровывать придется ветку с более чем 64-мя сообщениями.

Вот только тут уже непонятно, не затормозит ли работа с такими числами все вставки?
•••Jah\'d never let us down!•••

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
А вот еще про деревья нашлось
« Ответ #5 : 24 Июля 2003, 14:13:07 »
если вас смущают торомоза при вставке, то можно форум разделить на 2 таблицы - в одной хранить дерево, во  второй - данные.
Вставка в первую таблицу будет происходить быстро

Вообще данный алгоритм расчитан именно на форумы.
У меня в последнее время при работе с деревьями приходится делать такие операции
 - вывод структуры дерева (в данном алгоритме это просто)
 - получение дочерних узлов для указанного (по-моему в данном алгоритме это делать не удобно. Если я ничего не упустил - делается в 3 запроса)
 - получение родительских узлов для указанного (вот как это сделать - я пока не вижу)

ЗЫ
кстати помнится был разговор о том что алгоритм Nested Set неудобен для форумов. Это было неудобно для класса, который я тут везде рекламировал (http://dev.e-taller.net/dbtree) потому как он может хранить лишь одно дерево в таблице и при большом форуме будет тормозить вставка.
Класс Pear:: DB :: NestedSet - позволяет хранить много деревьев в таблице, поєтому если создавать для каждого треда свое дерева, вставка сообщений заметно тормозить не должна.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
А вот еще про деревья нашлось
« Ответ #6 : 25 Июля 2003, 17:03:49 »
Мда, алгоритм-то я реализовал. А вот сделать так, чтобы ответы в ветке шли сверху вниз, по дате добавления не могу. Третий день мучаюсь.

Может кто-нибудь подскажет, как это сделать?
•••Jah\'d never let us down!•••

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
А вот еще про деревья нашлось
« Ответ #7 : 26 Июля 2003, 13:47:33 »
Xander
а можно примерчик, в чем проблема ?
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
А вот еще про деревья нашлось
« Ответ #8 : 26 Июля 2003, 20:23:08 »
Как только найду халявный хостинг с MySQL - так сразу выложу, и покажу в чем именно проблема...
•••Jah\'d never let us down!•••

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28