github.com/vinkla/laravel-hashids
тоящее время я создаю UID для моих данных внутри метода контроллера под названиемrandomId
, Я вставил весь метод ниже:
public static function randomId()
{
$id = str_random(12);
$validator = Validator::make(
['calculation_uid'=>$id],
['calculation_uid'=>'unique:calculations,calculation_uid']
);
if ($validator->fails()) {
$this->randomId();
}
return strtoupper($id);
}
Обычно генерируется 12-значный буквенно-цифровой код, который затем запускается через валидатор, чтобы убедиться, что он еще не существует; если он существует, он снова запускает метод.
Я знаю, что могу уменьшить вероятность столкновения, увеличив его до 16 символов, но я всегда буду увеличивать его, если когда-нибудь достигну предела.
Есть ли способ, которым я могу (из-за отсутствия лучшей формулировки) сделать это более уникальным? Или моя реализация, вероятно, будет в порядке?