Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск по категорий по английской фразе (вместо номера) в адресе
 
 автор: xpom   (25.04.2011 в 13:05)   письмо автору
 
 

Скажите, как делается поиск, например в магазинах, каталогах, где в адресной строке написана категория латиницей, например www.site.ru/bitovaya_tehnika
очень интересно, как оно ищет по базе? Если в адресной строке первичный ключь www.site.ru/id_cat=25 то понятно, по ключу..а так

  Ответить  
 
 автор: cheops   (25.04.2011 в 13:13)   письмо автору
 
   для: xpom   (25.04.2011 в 13:05)
 

Обычно этим номерам сопоставляется значение первичного ключа при помощи таблицы или ReWrite-правил в конфигурационном файле .htaccess, т.е. фактически поиск все-равно ведется по номеру.

  Ответить  
 
 автор: xpom   (25.04.2011 в 13:31)   письмо автору
 
   для: cheops   (25.04.2011 в 13:13)
 

а какой смысл так делать? Если можно по ключам в адресной

  Ответить  
 
 автор: cheops   (25.04.2011 в 13:34)   письмо автору
 
   для: xpom   (25.04.2011 в 13:31)
 

Некоторые разработчики и пользователи считают это более красивым и изящным решением, для англоязычных сайтов это также имеет значение в плане раскрутки сайта.

  Ответить  
 
 автор: xpom   (25.04.2011 в 13:46)   письмо автору
 
   для: cheops   (25.04.2011 в 13:34)
 

только разве что для раскрутки...и красоты...
а на скорость это влияей? Если делать отдельную таблицу сопоставления ключей и латиницу категорий

  Ответить  
 
 автор: cheops   (25.04.2011 в 14:59)   письмо автору
 
   для: xpom   (25.04.2011 в 13:46)
 

Смотря как сделать, если хорошо спроектировать скорость практически не измениться (но если измениться, то всегда в сторону замедления, за все фичи приходится чем-то расплачиваться).

  Ответить  
 
 автор: G-Style   (25.04.2011 в 13:14)   письмо автору
 
   для: xpom   (25.04.2011 в 13:05)
 

Думаю, что здесь возможно несколько вариантов. Но я бы сделал так: в БД у каждой категории есть первичный ключ (id), наименование категории (на кириллице) и альтернативное имя (на латинице для url). При запросе категории «bitovaya_tehnika» ищем в БД такую категорию.

  Ответить  
 
 автор: xpom   (25.04.2011 в 13:33)   письмо автору
 
   для: G-Style   (25.04.2011 в 13:14)
 

это полнотекстовый поиск?

  Ответить  
 
 автор: cheops   (25.04.2011 в 13:36)   письмо автору
 
   для: xpom   (25.04.2011 в 13:33)
 

Да здесь можно и без полнотекстового поиска обойтись - тексты короткие, их выгоднее проиндексировать обычным индексом.

  Ответить  
 
 автор: xpom   (25.04.2011 в 13:48)   письмо автору
 
   для: cheops   (25.04.2011 в 13:36)
 

то есть через LIKE?

  Ответить  
 
 автор: G-Style   (25.04.2011 в 14:43)   письмо автору
 
   для: xpom   (25.04.2011 в 13:48)
 

LIKE тут вообще ни к чему! Он только еще больше замедлит поиск. Можно создать файл-кеш в котором будут храниться все категории, чтобы не обращаться за ними постоянно в БД, оттуда же и будем извлекать id на основе alt_name (то, что было латиницей) и искать по БД. Либо сделать как писал выше Сheops.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования