Уникальные идентификаторы в базе данных - PullRequest
1 голос
/ 01 августа 2011

Я часто вижу сайты, где идентификаторы в URL выглядят так: http://battlelog.battlefield.com/bf3/forum/view/2811510711334022807/ Как они этого добиваются? Это не обычное поле автоинкремента. Все идентификаторы кажутся случайными, но с фиксированной шириной. Каковы преимущества?

Ответы [ 2 ]

3 голосов
/ 01 августа 2011

Один из подходов состоит в том, чтобы скрыть реальный идентификатор (который является auto_increment) в большом случайном числе.Например:

  • первая цифра показывает, где начинается действительный идентификатор
  • вторая цифра показывает длину
  • , где реальный идентификатор находится, как определено в предыдущих двухточки
  • все остальное - случайные числа до заданной длины

Другие варианты:

  • UUID - ваш пример неКажется, он не используется, но это универсальный уникальный идентификатор, который иногда используется.
  • снежинка - новый метод генерации идентификатора в твиттере (или что-то в этом роде)

Обратите внимание, что здесь есть два важных аспекта:

  • не позволяют пользователям легко угадывать идентификаторы - это обрабатывается моим примером.Но если есть защищенные ресурсы, всегда защищайте их проверкой безопасности в дополнение к неузнаваемому идентификатору
  • , предоставляющему уникальные идентификаторы для всего кластера - UUID, снежинка и тому подобное, гарантируют, что идентификатор уникален для всего кластера.машин.
0 голосов
/ 01 августа 2011

Идентификаторы GUID / UUID, такие как это, затрудняют угадывание того, что будет и не будет действительным идентификационным номером.Если у вас нет 10 ^ 18 пользователей, действительные идентификаторы будут очень редкими по сравнению с недействительными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...