Несколько вопросов по небольшой cms и mod_rewrite

regi

Новичок
Несколько вопросов по небольшой cms и mod_rewrite

Начал писать более или менее универсальный код админки для своих проектов =), пока пишу скрипт управления разделами сайта.
В базе использовал nested sets.
Таблица разделов выглядит так:
cid(int) cleft(int) cright(int) clevel(int) ctitle(varchar) cpath(varchar)
Где ctitle - название раздела,cpath - путь раздела от корня, например /catalog/raznoe/tovar. Именно по cpath осуществляется поиск (стоит перенаправление всего в хтаксессе на index.php)
Есть ли смысл добавить сюда поле и хранить в нем например md5(cpath) для ускорения выборки? то есть в index.php делать $sel=md5($query_string) и затем в запросе where md5_cpath=md5($sel)?
Свойства разделов, например, закрытый раздел и т.п., лучше хранить в отдельной таблицы и делать джойн при выборке?
На что следует обратить внимание? :)
Так же возникла небольшая проблема при переименовании пути раздела. Допустим есть такие разделы:
/articles
/articles/php
/articles/html
Админ вводит новый путь для раздела articles, теперь он называется info.
Как сделать
/info
/info/php
/info/html ?
Я реализовал это выборкой всех детей раздела и заменой в цикле то есть примерно так:
PHP:
//cleft cright - параметры раздела, из которого выбираем детей
$query="SELECT * FROM cat WHERE cleft > '".$cleft."' AND cright < '".$cright."' ORDER BY cleft";
  $result = $db->query($query);
  while($row = $db->fetch_array($result)){
   $epath = str_replace($old_path, $_POST['cat_path'], $row['cpath']);
   $uquery = "UPDATE cat SET cpath='".$epath."' WHERE cid='".$row['cid']."' ";
   $db->query($uquery);
  };
Но если детей у раздела штук 50, то 50 запросов, как мне кажется, не очень хорошо :), хотя это будет происходить достаточно редко. Как сделать по-другому?
 

regi

Новичок
а если получится что будет потомок с именем articles и предок с таким же именем? /articles/php/articles как выбирать из базы тогда?
 

regi

Новичок
не нашел я готовой функции :)
буду делать $arr = explode($cpath) после чего ключи массива будут задавать clevel в запросе.
 
Сверху