Насколько точный и уникальный mt_rand + time () сгенерированный ключ использовать в качестве идентификатора ссылки бронирования?

Я думаю использовать $uniqueId = substr(md5(time() * mt_rand()),0,5); генерировать уникальные идентификаторы для бронирования.
Но как насчет дублирования этого сгенерированного идентификатора? Что делать, если база данных уже имеет тот же идентификатор, который был сгенерирован этим? Сколько процентов там будет генерировать идентичные идентификаторы, если я буду использовать это?

1

Решение

С человеческой точки зрения, md5 не будет хорошим справочником по бронированию — например, было бы довольно неловко передавать по телефону.

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

Варианты включают в себя:

  • Использование элемента даты и чего-то, связанного с пользователем, для создания ссылки.
    Такие как 2014/09/CUSTOMERSURNAME01

  • Использование элемента даты и случайного

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]