Тяжеловато пошло... у меня сейчас истерика начнётся.. Пытаюсь собрать больше материала на эту тему чтобы понять в чем все-таки истина. Смотрел _demiurg.livejournal.com/53125.html?thread=591749 и вообще выпал. Мнения слушать бл проще реально писать своё. Не надо говорить что для каждого случая используется своя система деревьев, т.к. это неверно. Деревья везде и всегда одни, если у вас там вложенность глубже 1/2 категорий. Что вообще может понадобится от деревьев? 1. Не ресурсозатратное извлечение данных 1 запросом независимо от вложенности 2. Гибкое изменение деревьев (перенос, и т.п.) (в смысле удобства) 3. Остальное, типа создание дерева, их удаление, редактирование вообще неважно сколько это ресурсов сожрёт, т.к. это относится к администрированию. Последнее - ГОРАЗДО более редкие операции чем извлечение, и в этой связи та система деревьев может считаться приемлемой, которая соответствует первым 2 пунктам, и всё. Nested Sets меня устраивает, но полная засада со вторым пунктом. Чего блин сделать чтобы данный пункт был удовлетворён, а первый из-за этого не "просел"? Эхх.. опять меня на желание получит советы тянет...
Volt(220), а нельзя ли выложить примеры sql и интерфейс по работе с NSTree? А то есть только для ALTree и FHTree или не имеет значение?
Mark32 Интерфейс везде один. Он задается классом DBTree. Разница лишь в массиве исходных данных для конструктора. NSTree, ALTree, FHTree - это лишь адаптеры к конкретному способу хранения дерева. Ссылка на исходники дана в первом посте. Сам NSTree (и собственно sql) можно посмотреть здесь: http://code.google.com/p/voltcore/sourc ... NSTree.php
это уже видел, спасибо! есть ли "адаптер" к nstree? чтобы не запутаться, потому и спросил, есть ли во-первых пример sql для nstree и во-вторых "интерфейс" для работы с nstree в том определении "интерфейса", где можно не заморачиваясь совершать операции создания категории/подкатегории, их перемещения, удаления и пр. Наверняка есть, вот поэтому и прошу выложить для более быстрого осмысления всего, ибо Вы автор класса, и наверняка предполагается показать класс в его практической работе без "догадайтесь сами, всё есть в классе". Если можно конечно просто класс сразу внедрить тяжеловато, а на конкретных примерах более проще было бы.
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 строчки)