2009-04-30 2 views
15

Slug - это часть URL-адреса, которая описывает или заголовки страницы и обычно содержит ключевое слово rich для этой страницы, улучшая SEO. например В этом URL-адресе PHP/JS - Create thumbnails on the fly or store as files последний раздел «php-js-create-thumbnails-on-the-fly-or-store-as-files» - это пуля.Должен ли я создать пулю на лету или хранить в БД?

В настоящее время я сохраняю пул для каждой страницы с записью страницы в БД. Пул генерируется из поля «Название», когда страница создается и сохраняется на странице. Тем не менее, я рассматриваю возможность создания пули на лету, если я хочу ее изменить. Я пытаюсь понять, что лучше и что сделали другие.

До сих пор я придумал эти про очков за каждый один:

магазин Slug: - «Быстрее» процессор не нужно генерировать его каждый раз (генерируется один раз)

Генерировать на лету: - Гибкий (можно настроить алгоритм пробивки и не нужно восстанавливать всю таблицу). - Менее свободное место в DB - Меньше данных переводимых с DB на App

Что еще я пропустил и как сделать/вы сделаете это?

EDIT:

Я просто хотел уточнить, что выглядит как недоразумение в ответах. Пульс не влияет на посадку на правильной странице. Чтобы понять это, просто отрубите или калечите любую часть пули на этом сайте. например .:

PHP/JS - Create thumbnails on the fly or store as files

PHP/JS - Create thumbnails on the fly or store as files

PHP/JS - Create thumbnails on the fly or store as files

все будет считать вас на той же странице. Слиз никогда не индексируется.

Вам не нужно будет сохранять старые слизняки. Если вы приземлились на странице с «старым слипом», вы можете обнаружить это и просто переадресовать 301 на правильно «пробитый». В приведенных выше примерах, если Stack Overflow реализовал его, тогда, когда вы приземлились на любую из ссылок с усеченными слизнями выше, это сравнило бы слизень в url с тем, который был сгенерирован текущим алгоритмом slug, и если бы он отличался от 301 перенаправлять на ту же страницу, но с новым слизнем.

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

ответ

4

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

Если вам так или иначе нужно хранить его в базе данных так или иначе.

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

Выберите тот, который является наиболее гибким.

+1

Это действительно хороший момент, о котором я не думал и является самой убедительной причиной, о которой я слышал до сих пор, для хранения пули в БД. Ручное вмешательство создания пули. Благодаря! – Guy

8

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

Редактировать, следуя разъяснениям Гая в вопросе: вам все равно нужно учитывать старые слизни. Например: если вы измените свой алгоритм slug, Google может начать видеть несколько версий каждой страницы, и вы можете пострадать от дублирования контента или, в лучшем случае, обменяться PR и SERP между несколькими версиями одной и той же страницы. Чтобы этого избежать, вам понадобится каноническая версия страницы, на которую перенаправляются любые неканонические слизни, и, следовательно, вам понадобится канонический слизень в базе данных.

+0

+1: если они не находятся в базе данных и правильно проиндексированы, в чем смысл наличия слизней? –

+0

+1, ваши URL-адреса не должны меняться после опубликования. По той же причине, регенерируя его, как только алгоритм пробки также странный. Если вы действительно хотите новые слизняки по эстетическим соображениям, правильным способом было бы сохранить старый, чтобы перенаправить на новый, но у вас все еще есть возможность сохранить по крайней мере все старые в БД. Кроме того, размер пробки ничтожно мал по сравнению с длиной изделия, поэтому я не буду одержим преимуществами экономии пространства/передачи БД. – millimoose

+1

@ Ричи, не очень убедительно.в конечном итоге лучшие ссылки - это те, которые лучше отражают контент, и поддержка карты сайта и перенаправления правильно помогут вам поддерживать правильные отношения с поисковыми системами. – Evgeny

3

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

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

1

Лучший способ обработки слизней - хранить только говорящую часть пули в базе данных и поддерживать часть маршрутизации с уникальным идентификатором для динамической генерации. В противном случае (если вы храните весь url или uri) в базе данных, это может стать серьезной задачей переписать все пули в базе данных, если вы передумали, как их вызвать.

Давайте эти вопросы SO слизняк, как, например:

/вопросы/807195/должны-я-Create-A-слизняка-на-лету или-магазин-в-дб

это :

/route/unique-ID/the-speaking-part-thats-not-so-important 

динамическая часть, очевидно:

/route/unique-ID/ 

И один я бы хранить в базе данных является s достигая максимума часть:

the-speaking-part-thats-not-so-important 

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

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

<link rel="canonical" href="http://stackoverflow.com/questions/807195/should-i-create-a-slug-on-the-fly-or-store-in-db" /> 

Это позволяет поисковым системам, чтобы определить правильную ссылку страницы и игнорировать другие в случае, если у вас есть дублированного контента.

 Смежные вопросы

  • Нет связанных вопросов^_^