Laravel 6+ Генерация идентификатора Uniq Только в количестве с дополнительной логикой - PullRequest
0 голосов
/ 06 мая 2020

Я генерирую uniqid с функцией time() Это около 10 цифр .. Я хочу uniq no, где я могу хранить не только 18 цифр! Для них я хочу сгенерировать rand(3 digit) + rand(3 digits) + rand(2 digits) .. У меня несколько вопросов 1. Есть ли вероятность столкновения 2. Может ли время из 10 цифр увеличиться до 11 или 12 3. Если оно увеличивается Чем я хочу построить logi c, где я могу динамически генерировать случайное no Like => 18 (Max) - if 10 (time) => then 3 + 3 + 2 if (11) then 3 + 2 + 2 && if (12) then 3 + 3 Если это возможно, пожалуйста, наставьте меня! Другие предложения Также приветствуются!

1 Ответ

1 голос
/ 07 мая 2020

Вы можете просто использовать bin2hex(random_bytes(9)) для генерации случайных идентификаторов. Но обратите внимание, что эти идентификаторы могут содержать буквы от A до F. в дополнение к цифрам.

Но обратите внимание, что случайных чисел обычно недостаточно для обеспечения уникальности, хотя bin2hex(random_bytes(9)) будет уникальным с огромной вероятностью. И есть еще несколько вещей, которые следует учитывать, например: предоставляет доступ к тому, что они идентифицируют.

Наилучший способ генерации уникальных идентификаторов будет зависеть от этих и других вопросов, которые я даю в разделе « Уникальные случайные идентификаторы ». Вы должны отредактировать свой вопрос, указав ответы на шесть вопросов, которые я задаю в этом разделе; в ответах будет предложено, какие идентификаторы использовать.

...