Пример:
Есть некая организация. Структура организации представляет древовидную структуру. И в каждом подразделении работают люди.
Надо написать CMS для сайта такой организации.
Причём хотелось бы чтобы ссылки были "красивые", т.е.
/org/podrazd_a/podrazd_b/.../podrazd_z/ - Так выглядит ссылка на страничку подразделения,
/org/podrazd_x/podrazd_y/.../podrazd_z/news/ - Так выглядит ссылка на все новости подразделения,
/org/podrazd_x/podrazd_y/.../podrazd_z/news/2006/01/10/14:35 - так выглядит ссылка на конкретную новость,
то есть в общем случае:
/org/podrazd_x/podrazd_y/.../podrazd_z/НАЗВАНИЕ_МОДУЛЯ/НАСТРОЙКИ/МОДУЛЯ.
Но при этом ещё должны быть странички людей, причём модули для них те-же:
/org/podrazd_x/podrazd_y/.../podrazd_z/people/ФИО_человека/НАЗВАНИЕ_МОДУЛЯ/НАСТРОЙКИ/МОДУЛЯ
Ну понятно что все директории виртуальные, и структура хранится в табличке, и люди привязаны к структуре.
Возникают следующие проблемы:
1. Проверка вхождения подразделения в вышестоящую структуру, то есть надо прослеживать всю цепочку вышестоящих подразделений, эа задача довольно трудоёмка, т.к. ф-я обхода дерева рекурсивна.
2. Получается "некрасивая" структура ссылки в том плане, что после структурного подразделения обычно стоит название модуля, а в случае страниц людей, это уже будет не совсем модуль. Или может надо оформить его как модуль, и из него уже подключать другие модули?
3. В случае с информацией о подразделении, логичнее будет дать доступ на изменение страниц начальнику подразделения, или же делать отдельный аккаунт для этих целей? Про каскадную систему прав тоже можно подумать, только нужно ли оно...
В принципе думаю что пример достаточно стандартен. Хочу послушать мнения.