За последние 24 часа нас посетили 18096 программистов и 1680 роботов. Сейчас ищут 1057 программистов ...

Деревья.

Тема в разделе "Решения, алгоритмы", создана пользователем Volt(220), 22 сен 2010.

  1. Mark32

    Mark32 Активный пользователь

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    ага, понятно теперь. спс
     
  2. Mark32

    Mark32 Активный пользователь

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    Тяжеловато пошло... у меня сейчас истерика начнётся.. Пытаюсь собрать больше материала на эту тему чтобы понять в чем все-таки истина. Смотрел _demiurg.livejournal.com/53125.html?thread=591749 и вообще выпал. Мнения слушать бл проще реально писать своё.

    Не надо говорить что для каждого случая используется своя система деревьев, т.к. это неверно. Деревья везде и всегда одни, если у вас там вложенность глубже 1/2 категорий.
    Что вообще может понадобится от деревьев?

    1. Не ресурсозатратное извлечение данных 1 запросом независимо от вложенности
    2. Гибкое изменение деревьев (перенос, и т.п.) (в смысле удобства)
    3. Остальное, типа создание дерева, их удаление, редактирование вообще неважно сколько это ресурсов сожрёт, т.к. это относится к администрированию. Последнее - ГОРАЗДО более редкие операции чем извлечение, и в этой связи та система деревьев может считаться приемлемой, которая соответствует первым 2 пунктам, и всё.

    Nested Sets меня устраивает, но полная засада со вторым пунктом. Чего блин сделать чтобы данный пункт был удовлетворён, а первый из-за этого не "просел"? Эхх.. опять меня на желание получит советы тянет...
     
  3. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
  4. Mark32

    Mark32 Активный пользователь

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    Есть ли презентация в текстовом виде? Задолбался вручную перевод искать
     
  5. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    че там переводить-то?)

    презентацию можно скачать
     
  6. Mark32

    Mark32 Активный пользователь

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    Volt(220),
    а нельзя ли выложить примеры sql и интерфейс по работе с NSTree? А то есть только для ALTree и FHTree или не имеет значение?
     
  7. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Mark32
    Интерфейс везде один. Он задается классом DBTree. Разница лишь в массиве исходных данных для конструктора. NSTree, ALTree, FHTree - это лишь адаптеры к конкретному способу хранения дерева.

    Ссылка на исходники дана в первом посте.
    Сам NSTree (и собственно sql) можно посмотреть здесь:
    http://code.google.com/p/voltcore/sourc ... NSTree.php
     
  8. Mark32

    Mark32 Активный пользователь

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    это уже видел, спасибо!

    есть ли "адаптер" к nstree? чтобы не запутаться, потому и спросил, есть ли во-первых пример sql для nstree и во-вторых "интерфейс" для работы с nstree в том определении "интерфейса", где можно не заморачиваясь совершать операции создания категории/подкатегории, их перемещения, удаления и пр. Наверняка есть, вот поэтому и прошу выложить для более быстрого осмысления всего, ибо Вы автор класса, и наверняка предполагается показать класс в его практической работе без "догадайтесь сами, всё есть в классе". Если можно конечно :) просто класс сразу внедрить тяжеловато, а на конкретных примерах более проще было бы.
     
  9. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    1) Смотреть метод assignNames у NSTree по ссылке выше. Там расписаны поля входного массива.
    2) http://code.google.com/p/voltcore/sourc ... DBTree.php Из public методов получается интерфейс.
    3)Пункт "применение" из первого поста справедлив и по отношению к NSTree (за исключением создания, которое требует других полей и уже не полей, а массива =) ).
    4) http://code.google.com/p/voltcore/sourc ... Tester.php Здесь можно почерпнуть примеры создания таблиц и объектов.
    5) А вот здесь http://code.google.com/p/voltcore/sourc ... Tester.php примеры использования (с 961 строчки)