这样的场景你一定遇到过:
发现一个新的论坛或服务,马上想去注册一个帐号,然后失望地发现自己心仪的用户名已经被注册过了……
几乎每一个互联网产品都会设计一个账号系统,如何设计好这个账号系统是一个很难的问题。你想给用户更多的选择性(而不是向 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.小红
...
大家有什么建议或者更好的账号系统设计方法的话,欢迎交流^^
(我们暂时不考虑邮箱作为帐号以及第三方登录这种“有依赖”的账号系统哈~)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.