Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 24.02.2011, 22:46   #11
Специалист
 
Аватар для BMG
 
Регистрация: 14.09.2007
Сообщений: 271
Вес репутации: 215
BMG - как роза среди колючекBMG - как роза среди колючекBMG - как роза среди колючек
По умолчанию

Цитата:
Сообщение от boric Посмотреть сообщение
Никаких сложных запросов. Делается один простой и быстрый запрос к БД, выбирающий поддерево (только поддерево), без каких-либо группировок и прочих сложностей.
А можно примерчик?
BMG вне форума   Ответить с цитированием
Старый 24.02.2011, 23:19   #12
Эксперт
 
Регистрация: 05.03.2008
Сообщений: 1,095
Вес репутации: 254
boric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущее
По умолчанию

BMG,
Цитата:
А можно примерчик?
Начните например отсюда: http://mikhailstadnik.com/hierarchic...s-and-doctrine
boric вне форума   Ответить с цитированием
Старый 11.03.2011, 10:00   #13
Специалист
 
Аватар для BMG
 
Регистрация: 14.09.2007
Сообщений: 271
Вес репутации: 215
BMG - как роза среди колючекBMG - как роза среди колючекBMG - как роза среди колючек
По умолчанию

Цитата:
Сообщение от Frenk1 Посмотреть сообщение
Сам сейчас занимаюсь этим же
Пока нашел тут много интересной инфы
http://phpclub.ru/faq/Tree/Ns?v=zz4
http://phpclub.ru/faq/Tree/Faq?v=lzx
Цитата:
Сообщение от boric Посмотреть сообщение
Начните например отсюда: http://mikhailstadnik.com/hierarchic...s-and-doctrine
Что-то у меня сомнения, что эти методы применимы в случае если:
- у каждого элемента 2 родителя, а не 1 (MP тут точно отпадает)
- нет корневого елемента или их несколько
- может быть несколько отдельных деревьев и одиночных элементов.
- еще ветви (вверх от детей к родителям) могут пересекаться.
BMG вне форума   Ответить с цитированием
Старый 11.03.2011, 11:06   #14
Эксперт
 
Регистрация: 05.03.2008
Сообщений: 1,095
Вес репутации: 254
boric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущее
По умолчанию

BMG,
Цитата:
- у каждого элемента 2 родителя
Можно попробовать как-нибудь это обойти, вынеся мета-информацию в отдельную таблицу (у узла будет несколько путевЫх записей). Но я не вникал. У себя в движке я сразу сознательно отказался от возможности иметь несколько родителей и реализовал это ссылками на узлы. Несколько родителей означают, что страница принадлежит нескольким категориям, а это выливается в дублирование контента - одна и та же страница будет доступна под несколькими урлами. Я отказался от этого, реализовав функционал нескольких родителей другими путями, и сейчас нисколько не жалею об этом. Я могу как угодно реорганизовывать дерево, нисколько не беспокоясь об урлах и дублировании контента - урлы ни при каких обстоятельствах не меняются, дубли не создаются.
boric вне форума   Ответить с цитированием
Старый 11.03.2011, 12:11   #15
Специалист
 
Аватар для Андрей Барыкин
 
Регистрация: 04.03.2009
Адрес: GOA
Сообщений: 136
Вес репутации: 199
Андрей Барыкин - просто великолепная личностьАндрей Барыкин - просто великолепная личностьАндрей Барыкин - просто великолепная личностьАндрей Барыкин - просто великолепная личностьАндрей Барыкин - просто великолепная личностьАндрей Барыкин - просто великолепная личностьАндрей Барыкин - просто великолепная личность
Отправить сообщение для Андрей Барыкин с помощью ICQ
По умолчанию

Цитата:
Сообщение от boric Посмотреть сообщение
У себя в движке я сразу сознательно отказался от возможности иметь несколько родителей и реализовал это ссылками на узлы. Несколько родителей означают, что страница принадлежит нескольким категориям, а это выливается в дублирование контента - одна и та же страница будет доступна под несколькими урлами. Я отказался от этого, реализовав функционал нескольких родителей другими путями, и сейчас нисколько не жалею об этом. Я могу как угодно реорганизовывать дерево, нисколько не беспокоясь об урлах и дублировании контента - урлы ни при каких обстоятельствах не меняются, дубли не создаются.
Так это и есть верный путь. Все можно сделать одним корректным запросом, если организована грамотная структура данных!
__________________
Мегаподборка интереснейших афоризмов на сайте: Супер-афоризм!
Андрей Барыкин вне форума   Ответить с цитированием
Старый 11.03.2011, 18:32   #16
Специалист
 
Аватар для BMG
 
Регистрация: 14.09.2007
Сообщений: 271
Вес репутации: 215
BMG - как роза среди колючекBMG - как роза среди колючекBMG - как роза среди колючек
По умолчанию

Цитата:
Сообщение от boric Посмотреть сообщение
BMG,
Можно попробовать как-нибудь это обойти, вынеся мета-информацию в отдельную таблицу (у узла будет несколько путевЫх записей). Но я не вникал. У себя в движке я сразу сознательно отказался от возможности иметь несколько родителей и реализовал это ссылками на узлы. Несколько родителей означают, что страница принадлежит нескольким категориям, а это выливается в дублирование контента - одна и та же страница будет доступна под несколькими урлами. Я отказался от этого, реализовав функционал нескольких родителей другими путями, и сейчас нисколько не жалею об этом. Я могу как угодно реорганизовывать дерево, нисколько не беспокоясь об урлах и дублировании контента - урлы ни при каких обстоятельствах не меняются, дубли не создаются.
Может намекнете как Вы это реализовали? Правда у меня немного другая задача. Мне надо строить родословные.
Пока ничего лучше, кроме как рекурсивно выбирать предков, не придумал. Можно конечно хранить для каждого объекта часть ветви предков, до определенного колена. Но тогда будет проблема с перестроением дерева.
BMG вне форума   Ответить с цитированием
Старый 11.03.2011, 18:57   #17
Эксперт
 
Регистрация: 05.03.2008
Сообщений: 1,095
Вес репутации: 254
boric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущее
По умолчанию

BMG,
Цитата:
Можно конечно хранить для каждого объекта часть ветви предков, до определенного колена. Но тогда будет проблема с перестроением дерева.
Такова жизнь. Если где-то что-то прибыло, значит в другом месте убыло. Перестроение дерева потребует дополнительных расходов ресурсов, но один раз, при изменении дерева. Зато фронт-энд убыстрится например в десять раз. Вам надо найти баланс. Если дерево очень часто меняется, тогда возможно не стоит городить огород. А вот если дерево меняется редко, а его ветви считываются часто, то тогда имеет смысл повозиться.
boric вне форума   Ответить с цитированием
Старый 12.03.2011, 01:25   #18
Специалист
 
Аватар для BMG
 
Регистрация: 14.09.2007
Сообщений: 271
Вес репутации: 215
BMG - как роза среди колючекBMG - как роза среди колючекBMG - как роза среди колючек
По умолчанию

Я ориентируюсь на частое изменение, т.к. добавлять/редактировать будут пользователи.
BMG вне форума   Ответить с цитированием
Старый 12.03.2011, 03:47   #19
Эксперт
 
Регистрация: 05.03.2008
Сообщений: 1,095
Вес репутации: 254
boric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущее
По умолчанию

BMG, добавление узла не сильно ресурсоемко - достаточно по родителям пробежаться и путь составить. А вот перемещать и копировать поддеревья - ресурсоемко. Смотрите сами. Возможно и не стоит в вашем случае огород городить. А для фронтэнда можно и кешированием обойтись будет.
boric вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсветка строк при режиме вывода "дерево" JIucky Пожелания пользователей системы 0 06.10.2010 19:39
Как лучше построить ветку сайтов-филиалов? skolkov Общие вопросы оптимизации 24 08.08.2010 20:34
(Двоичное Дерево) С++ Очистка памяти heroin Курилка 10 05.12.2009 01:58
Сколько стоит дом построить? :) Tony Soprano Курилка 28 01.12.2009 14:29
Получить дерево папок V!rus Разработка и сопровождение сайтов 4 17.03.2008 22:22


Часовой пояс GMT +3, время: 15:07.