@Narts

Как правильно генерировать ЧПУ?

Всем привет!
Подскажите, как лучше реализовать генерацию ЧПУ.

С переводом русской строки в транслит, проблем нет, но есть возможность (хоть и очень-очень маленькая) иметь две одинаковые записи с одним юрлом (когда название постов будет одинаковым (посты создают юзеры, и повторение названий вполне возможно)). Есть идея "разбавлять" транслит айдишником запись (site.ru/blog/view/23-sipmle-post), но как лучше получать этот айдишник?

Вариантов два:
1. При генерации урла брать айдишник последней строки в бд и присоединять его к транслиту (но тогда могут быть случаи, когда посты, добавленные в одно время будут иметь одинаковый айди в урле, хоть и транслит будет разный. Понимаю, что вероятность очень-очень мала, но все же)
2. При добавлении поста в бд пропускать "генерацию" урла, а затем брать айди уже созданного поста, генерировать урл и обновлять запись в бд (обновлять урл).

Как лучше поступить?
И может вообще не стоит загоняться с этими маловероятными моментами? Но хочется все-таки чтобы перфекционист во мне был доволен
  • Вопрос задан
  • 126 просмотров
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
Получить все схожие ЧПУ "SELECT slug FROM table WHERE slug = '{$slug}' OR ':slug' LIKE '{$slug}%'"
ну и если нет прямого совпадения используем исходный slug/чпу, если есть - циклом добавляем к slug итеративно увеличивающиеся номера до теп пор пока попадаются совпадения т.е.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы