При использовании уникальной буквенно-цифровой строки для короткого URL лучше хранить созданную строку в базе данных или кодировать / декодировать на лету? - PullRequest
1 голос
/ 22 февраля 2010

Я хочу создать сокращенные ссылки для определенных частей контента на моем сайте. Чтобы просмотреть эти страницы сейчас, я извлекаю соответствующий контент через идентификатор контента, передаваемый через GET (то есть mysite.com/content/?id=332). Чтобы скрыть идентификатор, я хочу использовать base64 для кодирования и декодирования его в короткую буквенно-цифровую строку (например, 34sa6), что я уже знаю, как это сделать.

У меня такой вопрос: имеет ли смысл сохранять эту строку в качестве поля базы данных при создании каждого фрагмента контента или просто декодировать строку на лету, когда пользователь посещает mysite.com/content/34sa6 (который означает, что посещение mysite.com/content/?id=332 также загрузит правильную страницу). Если я сохраню это вместо этого, он станет первичным ключом defacto для моих целей, так как все связанное с ним содержимое будет запрашиваться на основе этого, поэтому просто пытаюсь найти самый мудрый способ сделать это.

1 Ответ

2 голосов
/ 22 февраля 2010

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

Хранение в базе данных позволяет изменять кодировку в любое время, поскольку при необходимости получения полного URL-адреса сценарий ищет только соответствующую запись в базе данных.

...