Подобные вопросы уже задавались, но мой вопрос несколько отличается от некоторых исследований, проведенных над ним.
При регистрации на веб-сайте я предоставляю
FirstName : Ajay, LastName : Kumar
Теперь бэкэнд-API необходимо создать уникальный идентификатор из этих двух текстов.Почему?
Да, я использовал автоинкрементный столбец Integer для хранения идентификатора пользователя, но это Unique_id, который будет отображаться в URL страницы профиля пользователя, как большинство сайтов (fb, twitter,quora) делай.Я думаю, что это помогает в SEO для поиска профиля людей.
Подходы на мой взгляд:
1.FirstName + LastName + mysql-auto-Generated-ID
API не может знать автоматически сгенерированный идентификатор до создания пользователя.
2.Concat FirstName & LastName и использование его в качестве уникального идентификатора, если БД завершается с ошибкой и возвращает ошибку нарушения идентификатора, затем начинайте добавлять цифры, начиная с 0, пока не будет найден действительный идентификатор.
Увеличивает количество обращений к базе данных.
3.FirstName + LastName + [случайные целые числа]
Также увеличивает пошаговую передачу базы данных.
4.Используйте UUID, связанный с FirstName + LastName.
Поскольку UUID 128-битный, это довольно долго, и мне нужно его подстроковать.Это может привести к дублированию идентификаторов
5.объединяя текущую метку времени с FirstName + LastName.
Но это значение также довольно длинное.
Самый эффективный способ - использовать UUID и подстроку из него 4-5 начальных символов.Если уникальный идентификатор уже занят, попробуйте использовать другой UUID.Я думаю, что это лучше всего в случае уменьшения количества обращений к базе данных.
Мне интересно знать, как веб-сайты обрабатывают это (кроме рекурсивных вызовов этой базы данных, пока не будет найден действительный уникальный идентификатор)?В уникальном идентификаторе есть правильное распределение цифр (например, в Quora ).Например, tim-cook-1
, time-cook-2
.