Структура URL адреса включающая в себя даты и ключевое слово новости.

Лисю

Guest
Структура URL адреса включающая в себя даты и ключевое слово новости.

Как пример - lenta.ru
Новость выглядит примерно так: http://lenta.ru/news/2006/01/13/sharon/ - про шарона
http://lenta.ru/news/2006/01/13/ - за весь день
http://lenta.ru/news/2006/01/ - за месяц
http://lenta.ru/news/2006/ - за год.

ИМХО удобно, хочу такое же у себя реализовать, только вот вопрос возникает - насколько оправданно в качестве идентификатора использовать не автоинкрементный ид, а человекопонятный идентификатор?

И как подобную структуру организовать в таблице? Я так понимаю ид в URL не является уникальным ключом? Видимо есть какой-то дополнительный uniq_id?
 

_RVK_

Новичок
Настолько же оправданно как пить коллу вместо пепси.
 

Ponemetski

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

Toxic_Cat

Новичок
Re: Структура URL адреса включающая в себя даты и ключевое слово новости.

Автор оригинала: Лисю
Как пример - lenta.ru
Новость выглядит примерно так: http://lenta.ru/news/2006/01/13/sharon/ - про шарона
http://lenta.ru/news/2006/01/13/ - за весь день
http://lenta.ru/news/2006/01/ - за месяц
http://lenta.ru/news/2006/ - за год.

ИМХО удобно, хочу такое же у себя реализовать, только вот вопрос возникает - насколько оправданно в качестве идентификатора использовать не автоинкрементный ид, а человекопонятный идентификатор?

И как подобную структуру организовать в таблице? Я так понимаю ид в URL не является уникальным ключом? Видимо есть какой-то дополнительный uniq_id?
Разница в человекопонятном id и auto incrementom неоправданная.
 

Лисю

Guest
Хорошее обсуждение - http://xpoint.ru/forums/misc/thread/27895.xhtml
В принципе, есть некоторые ЗА что бы так сделать.

-~{}~ 14.01.06 13:53:

Вообщем, я решился так сделать.
Теперь вопрос по выборке и структуре БД вознк.

Допустим, нужно выбратьзаписи http://lenta.ru/news/2006/01/13/ - за весь день.

Как структуру таблицы делать определяющую дату - просто стобцом типа date или делать поле год, месяц, число?
 

Лисю

Guest
Я сделал это. Довольно красиво и готично получилось. Теперь вопрос по оптимизаци, правильно ли я сделал:

Так я формирую чать строки, которая далее вставляется в SQL запрос, которая отвечает за определённую выборку:
PHP:
$sql_str = '';
$sql_str .= !empty($_REQUEST["year"]) ? " AND YEAR(lenta_date_add)=".$_REQUEST["year"] : "";
$sql_str .= !empty($_REQUEST["month"]) ? " AND MONTH(lenta_date_add)=".$_REQUEST["month"] : "";
$sql_str .= !empty($_REQUEST["day"]) ? " AND DAYOFMONTH(lenta_date_add)=".$_REQUEST["day"] : "";
а это директивы mod_rewrite:
Код:
# Редирект на элемент ленты типа [url]http://server.ru/tape/news/2006/01/16/news.xhtml[/url]
RewriteRule ^tape/([a-z0-9_-]+)/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([a-z0-9_-]+)\.xhtml$	tape/show_message.xhtml?lenta_id=$1&year=$2&month=$3&day=$4&alnum_message_id=$5&%{QUERY_STRING}

# Редирект для списка элементов ленты определённого дня  типа [url]http://server.ru/tape/news/2006/01/16/[/url]
RewriteRule 	^tape/([a-z0-9_-]+)/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$	tape/index.xhtml?lenta_id=$1&year=$2&month=$3&day=$4&%{QUERY_STRING}

# Редирект для списка элементов ленты определённого месяца  типа [url]http://server.ru/tape/news/2006/01/[/url]
RewriteRule ^tape/([a-z0-9_-]+)/([0-9]{4})/([0-9]{1,2})/?$	tape/index.xhtml?lenta_id=$1&year=$2&month=$3&%{QUERY_STRING}

# Редирект для списка элементов ленты определённого года  типа [url]http://server.ru/tape/news/2006/[/url]
RewriteRule ^tape/([a-z0-9_-]+)/([0-9]{4})/?$			tape/index.xhtml?lenta_id=$1&year=$2&%{QUERY_STRING}

#Редирект для ссылок на ленту типа [url]http://server.ru/tape/news/[/url]
RewriteRule ^tape/([a-z0-9_-]+)/?$					tape/index.xhtml?lenta_id=$1&%{QUERY_STRING}
Не знаю, может стоит это как-то оптимизировать покрасивее?
 
Сверху