Assume a service whereby everyone who has an english name has a user account. This means there could potentially be billions of user accounts. The primary constraint is that usernames must be professional.
Begin by assigning usernames to these individuals as:
firstname.lastname
This obviously works well until you realise that there are 1000 John Smiths who may wish to use your service.
We could assign usernames to these individuals as:
firstname.lastname.n where n is the order that particular user, of name firsname.lastname, registered their account.
The problem is that no one really would want the non-vanilla version of the username, One would much rather have firstname.lastname than firstname.lastname.n. 'I am not a number, I am a free man!'
So I am asking for suggestions on how this problem could be solved. Some thoughts:
Assign users greek characters instead of numbers. This basically abstracts the fact that their username has a number after it. Assume that the login method would allow a user to input greek characters easily. So the usernames would become:
firstname.lastname.α, firstname.lastname.β, ... firstname.lastname.α.α
Usernames based on registration date, similar to the way subjects in the movie 'The Island' are named. These names would probably be more memorable than with a simple number appended.
firstname.lastname.dd.word, firstname.lastname.6.echo, ... firstname.lastname.2.delta
I'm sure this problem has been considered before - and maybe it is a non-issue. Maybe appending numbers is actually the best way of doing it. Perhaps some other user information should be appended to the username? I would appreciate your thoughts!