这样的场景你一定遇到过:
发现一个新的论坛或服务,马上想去注册一个帐号,然后失望地发现自己心仪的用户名已经被注册过了……
几乎每一个互联网产品都会设计一个账号系统,如何设计好这个账号系统是一个很难的问题。你想给用户更多的选择性(而不是向 QQ 或电信运营商那样直接丢给你一个长长的无意义的数字);同时你又知道短小、常见的用户名大家都想要,也会很快用完;更另一头疼的是很多帐号用了一段时间后会被永久搁置,那些(可能很好记的)用户名也就永远不能用了……
数字账号系统举例:
2769672309
85034587727
5832749837
57803745327
7589723049
(这些样子的用户名真的很反直觉)
要给用户选择和定制的权利(别名不算,这里只谈唯一的 ID ), QQ 和电话号码这样的设计其实是很原始的,受制于当时的技术限制(输入界面只有数字,没有字母,更不要想中文用户名了)。
通常情况下像回收电话号码那样回收用户名是有风险的,因为我们不知道那些很长一段时间不被使用的用户名是否以后也不会被使用。所以回收这条路最好不碰。
字母用户名也有一个问题,就是它的先来先得特性——后面的注册用户的选择要远远少于前面的元老用户。 00 后网民就要比 90 后网民吃亏,这可能有些不公平,毕竟上网晚也不是罪。
我能想到的一种解决方案涉及到某种意义的“名称空间”。比如写程序的时候遇到的 System.Console 里面的 System 就是 Console 的名称空间。其实名称空间的概念是很多的,域名就是名称空间。 v2ex.com/member/小明 和 twitter.com/member/小明 就是可区分的,原则上是可以被两个人用的。把名称空间和用户名结合可能是个比较好的解决方法。
可是拿什么作为名称空间呢?地域?国籍?出生年份?这些都太涉及隐私且太不互联网时代了。不过出生年份这个建议启发了我,这是一个数字,但不一定注册者的个人信息,可以是注册时的时间信息啊!所以构想出 <YearOfRegistration>.<UserID> 的账号系统,如:
2015.小明
2016.小明
2016.小红
...
大家有什么建议或者更好的账号系统设计方法的话,欢迎交流^^
(我们暂时不考虑邮箱作为帐号以及第三方登录这种“有依赖”的账号系统哈~)
1
oott123 2016-01-19 20:26:39 +08:00
_(:з」∠)_那我还得记住我是哪一年注册的?
生日人人都有且唯一,这注册年份不同网站可都不一样啊… |
4
justjavac 2016-01-19 21:42:10 +08:00 via Android
名字空间?哈哈哈,容我笑两分钟。
/justjavac2015 和 /2015/justjavac 有什么区别? |