В настоящее время я создаю 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 символов, но я навсегда буду его увеличивать, если я когда-либо попаду в предел.
Есть ли способ, которым я могу (из-за отсутствия лучшей формулировки) сделать это более уникальным? Или моя реализация, вероятно, будет в порядке?