#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-4 #unique #uuid
#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-4 #уникальный #uuid
Вопрос:
Для ruby UUID Gem генерирует 36-символьные UUID.
Я хочу генерировать только 6 символов на основе входного номера (user_id).
Возможно ли это, если общее число пользователей не превышает 9_999_999?
Комментарии:
1. Вы можете сгенерировать 6 случайных строк с символами, но они не будут универсально уникальными (не могут быть)
2. Если вы хотите использовать уникальный UUID, не пытайтесь создавать свой собственный. Для удобного отображения делайте то, что делает GitHub, и показывайте только первые 8 символов.
3. Можно ли добавить идентификатор для повышения уникальности?. например. user_id = 1001, преобразовать в 7 символов (0001001), затем использовать результат для создания 6 уникальных символов
4. «133/10 = 13, остаток 3 (3)» — разве это не должно быть «c»? Во всяком случае, в этом преобразовании нет ни одного случайного бита. Это просто запись вашего идентификатора в base26.
5. Если вы генерируете случайные идентификаторы из 6 символов, где каждый символ представляет собой строчную букву ASCII (a-z), существует только 308915776 уникальных идентификаторов (26 ^ 6). И вы начнете видеть дубликаты задолго до того, как сгенерируете все идентификаторы.