kpp
Новичок
Дерево и проблемы с ветвями
Имеется следующая реализация "CMS":
Для управления страницами сайта имеется администраторский раздел. Для удобства поиска нужной страницы имеется классическая навигация в виде дерева.
Для этого имеется таблица со следующими полями:
id | parent_id | name
Для хранения самих страниц имеется вторая таблица, она хранит:
1. тело страницы( собственно контент);
2. заголовок страницы;
3. имя страницы.
Имя страницы вида "en/visitors/2007"
Это имя формируется при создании страницы. Если его не формировать, то не понятно как можно будет найти нужную страницу. (modRewrite принимает URI "/en/visitors/2007/" и формирует из него page.php?name=/en/visitors/2007/)
Проблема же заключается в следующем.
Допустим есть страница "en". Создаётся страница "visitors", которую мы сделали её потомком (её конечным именем становится "en/visitors"). Далее мы создаём ещё одну страницу "2007", она является уже потомком последней: её именем становится "en/visitors/2007". Если меняется имя какой-нибудь корневой страницы, то необходимо поменять имена всех предков. Можно ли сделать как-то по-человечески. Ведь если у страницы 1000 потомков, то придётся парсить все страницы и потом менять имена 1000 записай.
Имеется следующая реализация "CMS":
Для управления страницами сайта имеется администраторский раздел. Для удобства поиска нужной страницы имеется классическая навигация в виде дерева.
Для этого имеется таблица со следующими полями:
id | parent_id | name
Для хранения самих страниц имеется вторая таблица, она хранит:
1. тело страницы( собственно контент);
2. заголовок страницы;
3. имя страницы.
Имя страницы вида "en/visitors/2007"
Это имя формируется при создании страницы. Если его не формировать, то не понятно как можно будет найти нужную страницу. (modRewrite принимает URI "/en/visitors/2007/" и формирует из него page.php?name=/en/visitors/2007/)
Проблема же заключается в следующем.
Допустим есть страница "en". Создаётся страница "visitors", которую мы сделали её потомком (её конечным именем становится "en/visitors"). Далее мы создаём ещё одну страницу "2007", она является уже потомком последней: её именем становится "en/visitors/2007". Если меняется имя какой-нибудь корневой страницы, то необходимо поменять имена всех предков. Можно ли сделать как-то по-человечески. Ведь если у страницы 1000 потомков, то придётся парсить все страницы и потом менять имена 1000 записай.