Генерация уникальных идентификаторов из пользовательской нотации-места для URL-сокращения - PullRequest
0 голосов
/ 08 февраля 2011

Я хочу создать сокращенный URL-адрес в следующем формате: http://myurlshortner.com/{id}

, где id уникален и генерируется из следующей последовательности обозначений / /система / серия:

0
1
2
.
.
.
9
a
b
c
.
.
.
z

Например: http://myurlshortner.com/1b6z

Для сохранения записи в базе данных я хочу сделать id первичным ключом (или уникальное поле), которое увеличивается с каждой новой записью и следует вышеупомянутой последовательности.Как я могу это сделать?

Для хранения данных я буду использовать Amazon SimpleDB.Таким образом, не будет никаких хранимых процедур или других функций СУБД, как в MySQL, которые я могу использовать.

Это в точности (почти) похоже на то, как сокращенные URL-адреса, такие как http://tinyurl.com и http://bit.ly работа.

... и я пишу в PHP.Я надеюсь, вы понимаете мой вопрос.

1 Ответ

1 голос
/ 08 февраля 2011

Вы можете достичь того, что хотите, просто конвертировав обычный идентификатор базы 10 в базу 36.

База 36 использует цифры 0-9, а затем буквы A-Z.

Вы можете выполнить преобразование перед сохранением его в базе данных и использовать преобразованное число в качестве идентификатора, или просто использовать обычное автоматическое приращение базы 10 и выполнить преобразование в своем коде.

См .: http://php.net/manual/en/function.base-convert.php

php > echo base_convert(123456789, 10, 36);
21i3v9
...