![]() |
|
Модераторы: skyboy |
![]()
|
|
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 5 Всего: 315 |
задача такова
задумал я сделать для новостей ЧПУ. то есть посетители будут кликать по адресам http:/ /server.ru/news/novaja-novost/ и попадать на новость у которой в поле `chpu`="novaja-novostj" вопрос первый: надо ли проиндексировать поле chpu раз по нему будет вестись поиск? может ещё его назначит unique key? но заморочка у меня связана с другим дабы не напрягать контентщика придумыванием chpu, я решил, пусть ЧПУ получается из заголовка новости. оно очищается от неугодных символов, кириллица транслитируется в латиницу, а остальные символы обращаются в знак "-" теперь надо проверить, а есть ли уже такой ЧПУ в таблице, и если есть добавить в ЧПУ индекс (novaja-novost1) и снова проверить, если есть то подставить другую novaja-novost2 на пхп я это сделал, но получается несколько подряд идущих запросов, пока не отыщется свободный ЧПУ. а вот можно ли решить эту задачу на sql? скажем один запрос, вроде
но это не совсем корректный пример. так как он обнаружит и novaja-novost-o-drugom а тут ведь ещё надо как-то получить оконечный номер |
|||
|
||||
| sTa1kEr |
|
||||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 7 Всего: 146 |
Именно unique key.
Я думаю, что несколько запросов WHERE chpu = "unique_key" лучше, чем сложный алгоритм с WHERE chpu LIKE ''part%". А еще лучше, что бы значительно сократить количество дубликатов, создать составной уникальный ключ по дате + заголовку, соответственно ссылка тогда будет http:/ /server.ru/news/2010-02-20/novaja-novost/ или http:/ /server.ru/news/2010-02/novaja-novost/ и запрос ...WHERE news_date = '2010-02-20' AND chpu = 'novaja-novost' |
||||
|
|||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 5 Всего: 315 |
интересная мысль |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |