What's the best pattern for public facing user IDs? Or alternatively, what pattern is easiest for users to remember?

We have 100s of thousands of user ids on our system and want to make them public facing to the user. What's the best format for a public facing user id? Let's say we need ~10 billion unique ids max.

Numeric: 8192103281 (11 chars)
Alpha (lower): pkwhowla - (7 chars) this can be fewer letters
Alpha (upper/lower): mbLMzwI - (6 chars)

  • 1
    Users forget the passwords that they themselves have set up (and also forget their own memorable information too) so the chances of them remembering a random string of digits is pretty slim, I'd imagine. – JonW Nov 10 '14 at 16:51
  • 7
    Why do your users need to remember the ID? – unor Nov 10 '14 at 16:53
  • Let them use something that is already unique that they already know, e.g. their email address. Expecting anyone to successfully remember, then enter, a unique, meaningless (to them) code is unreasonable and likely to yield a sub-optimal result. – Steve Jones Nov 10 '14 at 18:47
  • Did you know that Nintendo Wii has online functionality? Did you also know that's it's flopping like a fish out of water because Nintendo expects you to find your friends via some crazy auto-generated ID? – MonkeyZeus Nov 10 '14 at 19:04

As others have noted, it would be much easier for users to remember things that they have generated themselves - e.g. an e-mail or username rather than a nonsensical ID. If you want users to connect to each other, you don't need to expose your internal representation of their instance; simply use something else that uniquely identifies them.

However, if you really want your users to have unique IDs that you generate for them, you can reduce the length of these IDs by mixing characters and numbers (though make sure they are represented with a font that can easily distinguish between 0 and O and 1 and I). Characters could also be good enough, though I would suggest against mixing upper and lower case because it will already be difficult enough for your users to remember/describe this ID without needing to distinguish between the often similar upper/lowercase letters. If you want the IDs to be more legible and identifiable, use upper case. If you want the users to scan many of these IDs to find the one they want, use lower case. If the IDs are particularly long, I would also suggest putting some sort of separator throughout to make it easier to keep track of and describe:


This is what is typically done by large companies such as Microsoft and Nintendo.


I personally find that using email address as the user ID is the easiest and most convenient method for users. It is much easier to remember, and also makes password recovery simpler. For sites that are used infrequently, separate usernames add unnecessary burden and make site use more difficult. I sometimes find that on sites I don't use very often, I will just avoid signing in, rather than go to the trouble to lookup the username. Where email address is used, the barrier to login is lowered.

  • Also, if you MUST use a username and not an email, allowing the username to be case-insensitive will make your users much happier. – Ryan Griggs Nov 11 '14 at 1:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.