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

Форум MySQL

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

 

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

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

тема: Выбор статей по меткам, килирилица в URL'ах, это нормально?
 
 автор: tAleks   (30.04.2011 в 11:19)   письмо автору
 
 

Есть таблица связка статей с метками:


CREATE TABLE articles_labels(
  id_article INT(11) NOT NULL COMMENT 'Ключ на объект',
  label VARCHAR(255) NOT NULL COMMENT 'Метки к статьям'
)
ENGINE = MYISAM
COLLATE cp1251_general_ci
COMMENT = 'Метки к статьям и новостям';


Таким образом когда пользователь кликает по метке, в URL добавляется параметр:

article.php?label=Спорт


Вопрос: В данном случае, кирилица в URL - это плохо? Или может быть ее надо кодировать, функцией urlencode()? Но тогда в URL будет что-то вроде: %D1%F2%F0%EE%EA%E0
Как поисковики к этому будут отноститься?

Или, еще есть идея добавить еще одно поле в таблицу, куда заносить имя метки в тринслите. И при клике на метку в УРЛ добавлять такую строку:

article.php?label=Sport


Как лучше сделать?

  Ответить  
 
 автор: cheops   (30.04.2011 в 11:55)   письмо автору
 
   для: tAleks   (30.04.2011 в 11:19)
 

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

  Ответить  
 
 автор: tAleks   (30.04.2011 в 15:11)   письмо автору
 
   для: cheops   (30.04.2011 в 11:55)
 

Добавил поле с транслитом. Теперь его надо проиндексировать, чтобы по нему делать выборку статей.

Возник ворпрос. На что влияет длинна индекса, и какую длинну в данном случае лучше указать для этого поля? И почему?
Спасибо.

  Ответить  
 
 автор: cheops   (30.04.2011 в 17:33)   письмо автору
 
   для: tAleks   (30.04.2011 в 15:11)
 

Она влияет на количество символов, которые помещаются в индекс от начала строки, если это количество сделать небольшим, то в группы будет попадать огромное количество строк и их придется перебирать каждый раз при сравнении (т.е. чем строк меньше, тем быстрее происходит выборка из индекса). С другой строны чем больше индекс, тем больше файл индекса и тем выборка из него идет медленнее. Т.е. индекс должен быть не слишком большой и не слишком маленький, в вашем случае я думаю можно начать с 10 символов (если будет желание можете поварьировать его и посмотреть как будет изменяться динамика, только динамику нужно смотреть на "разогретом" сервере и заполненном буфере ключей).

  Ответить  
 
 автор: tAleks   (02.05.2011 в 15:38)   письмо автору
 
   для: cheops   (30.04.2011 в 17:33)
 

Т.е. если я правильно понял, если индекс слишком маленький, например 3 символа, то, если в БД пишется две записи, у которых в этом столбце первыве три символа одинаковые, то в индекс попадает только одна запись? или как?

  Ответить  
 
 автор: cheops   (02.05.2011 в 15:56)   письмо автору
 
   для: tAleks   (02.05.2011 в 15:38)
 

Нет, в индекс попадают обе записи, но вместо прямого указания на запись, СУБД снова перебирает все записи таблицы.

  Ответить  
 
 автор: tAleks   (02.05.2011 в 16:12)   письмо автору
 
   для: cheops   (02.05.2011 в 15:56)
 

Вообще ВСЕ, или все те, у которых первые символы, попавшие в индекс, одинаковые?

  Ответить  
 
 автор: cheops   (02.05.2011 в 16:24)   письмо автору
 
   для: tAleks   (02.05.2011 в 16:12)
 

У которых первые символы, попавшие в индекс, одинаковые.

  Ответить  
 
 автор: tAleks   (02.05.2011 в 16:32)   письмо автору
 
   для: cheops   (02.05.2011 в 16:24)
 

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

  Ответить  
 
 автор: cheops   (02.05.2011 в 16:34)   письмо автору
 
   для: tAleks   (02.05.2011 в 16:32)
 

Желательно, да.

  Ответить  
 
 автор: tAleks   (02.05.2011 в 16:50)   письмо автору
 
   для: cheops   (02.05.2011 в 16:34)
 

Спасибо!

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

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