ФорумПрограммированиеPHP для идиотов → В каком формате храним деревья?

В каком формате храним деревья?

  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 22 декабря 2009 г. 20:54

    Итак. Давно хотел поговорить на эту тему. Что мы имеем:

    1) Стандартные странички. Что с ними нужно делать: строить менюшку (указывать с какого элемента начинать, с какой глубиной выбирать), хлебные крошки рисовать, делать поиск

    2) Каталог товаров

    3) Разделы новостей

    4) Форум

    хотел я много написать.. Но я так устал сегодня. Так что в другой раз.
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 22 декабря 2009 г. 21:15, спустя 21 минуту 34 секунды

    Сейчас используем Nested sets, причина - максимально ускорить выборку на построение структуры.
    Но не исключено, что в другом проекте будет другое решение.
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 22 декабря 2009 г. 21:21, спустя 6 минут 18 секунд

    мат пути
    оч удобно и скорость устраивает
    все умрут, а я изумруд
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 22 декабря 2009 г. 21:23, спустя 1 минуту 48 секунд

    Я юзаю списки смежности, но очень хочу разобраться нормально в Nested sets (ну я также, как и Дуд, борец за скорость обработки запросов). Потому и голосую за 4-ый вариант.
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 22 декабря 2009 г. 21:26, спустя 3 минуты 13 секунд

    Nested sets
    очень удобно. Спасибо дуду,мд5,мавру,эдво, гиви и другим кто наставил на путь истинный :))))
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 22 декабря 2009 г. 23:13, спустя 1 час 46 минут 48 секунд

    На сегодня реально  только (id, parent_id), но скоро вероятно появится Nested Sets.
    Был опыт с материализованными путями.
    В списке не хватает еще одного — у оракла есть свое нестандартное расширение для деревьев.
    ιιlllιlllι унц-унц
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 23 декабря 2009 г. 0:16, спустя 1 час 2 минуты 24 секунды

    Имел опыт со всем что есть, но чаще всего за все время приходилось использовать adjancency list, далее netsed sets и materialized path
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 23 декабря 2009 г. 13:17, спустя 13 часов 1 минуту 41 секунду

    смотря для чего и какой уровень вложености
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 23 декабря 2009 г. 15:00, спустя 1 час 42 минуты 19 секунд


    смотря для чего и какой уровень вложености


    ну смотри: я же в первом сообщении указал варианты (для чего). А уровни вложенности - исходя из типовых проектов по этим вариантам.
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 23 декабря 2009 г. 15:44, спустя 44 минуты 21 секунду

    nested sets
    adjancency list
    nested sets
    хз надо думать

    соответственно твоим вопросам
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 21 января 2010 г. 2:16, спустя 28 дней 10 часов 31 минуту

    Nested sets - кто как находит родительский элемент?
    Варианты которые знаю:
    1)
    SELECT id, name, level FROM my_tree WHERE left_key <= $left_key AND right_key >= $right_key AND level = $level + 1 ORDER BY left_key

    2) создать дополнительное поле parent_id
    Спустя 129 сек.
    чаще всего использую parent_id
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 21 января 2010 г. 2:28, спустя 11 минут 55 секунд

    1 естественно :)
    Сапожник без сапог
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 21 января 2010 г. 3:14, спустя 46 минут 24 секунды


    1 естественно :)
    а есть доводы какие либо?
    а то вот интересно, щас переписываю модуль "структура сайта" и тоже как то задумался над этим вопросом… :)
    Спустя 77 сек.
    но только не считая что parent_id так сказать «нарушает "идеологию"» nested sets
    Спустя 151 сек.
    пиздец сейчас сижу и вспоминаю когда писал этот модуль, и как я думал что это мега-сложная штука эти деревья :))) а щас проще простого :D
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 21 января 2010 г. 2:41, спустя 23 часа 26 минут 42 секунды

    но только не считая что parent_id так сказать «нарушает "идеологию"» nested sets

    а также целостность сайта может нарушить, вот тогда ты отхватишь хуйка … ой отхватишь, восстанавливал я както раз нестед табличку изза неправильного parentid
    Сапожник без сапог
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 21 января 2010 г. 3:14, спустя 32 минуты 56 секунд


    но только не считая что parent_id так сказать «нарушает "идеологию"» nested sets

    а также целостность сайта может нарушить, вот тогда ты отхватишь хуйка … ой отхватишь, восстанавливал я както раз нестед табличку изза неправильного parentid
    благо это сейчас (в реальном сайте) используется только в одном… и мне на него похуй, точнее код я там уже не трогаю :))))
    Спустя 67 сек.
    вот уже довод есть: целостность. Отлично! Ладно пошел спать… надо выспаться :)))

Пожалуйста, авторизуйтесь, чтобы написать комментарий!