大型网站,众多用户,如何识别用户的独特性

时间:2011-03-03 04:24:52

标签: php database-design social-networking

大多数网站都要求用户名是唯一的。我注意到SO允许重复的用户名,当你拥有像SO这样的非常大的网站时,这可能会很好(我猜他们这样做是为了避免像chris123,chris213,chris321这样的用户名,这些用户名开始让人感到困惑)。但允许重复的用户名通常是一个相对较差的实现?从2个具有相同用户名的用户获得2个答案可能会令人困惑。

那么对于拥有大量用户需要互相交流的大型网站,还有哪些替代方案呢?我在想一些甚至不是基于用户名的东西,但不确定是什么。

5 个答案:

答案 0 :(得分:2)

虽然具有不同的用户名(通常用于登录)是近乎绝对的要求,但是没有理由显示别名有任何要求是唯一的,只要有可识别的方法来识别使用该用户的其他个人的实际用户。系统。这是讨论论坛中相当普遍的做法,因为真的有很多“杰夫史密斯”在那里。例如,使用用户的声誉并链接回他们的个人资料,作为区分所涉及的实际用户的机制。但登录本身必须具有一种独特性。

作为澄清我评论的广告:

天空(和你的想象力)确实是如何唯一识别别名的限制。在标准配置文件链接之外,您可以添加其他独特的特征(如果您希望别名相对明确无误)。作为一些例子,我没有看到:在重新使用别名时使用独特的字体或颜色......蓝色sanscript Jeff Smith与黄色arial Jeff Smith不同(只是一个示例方法)

答案 1 :(得分:1)

我过去曾经在我自己的网站上遇到过这种情况,我发现最好的方法是通过电子邮件地址识别用户。

这是一个非常简单的方法,因为它允许多个用户名(或名称,就像Facebook一样),并且您始终可以通过数据库中的用户ID识别唯一性,并在网站上显示,甚至可以显示他们的用户名,头像以及可能的位置。

示例:

chris123 (AZ) - chris123@example.com
chris123 (WA) - chris123.west@example.com
chris321 (AZ) - chris321@example.com

答案 2 :(得分:1)

我相信你有两个截然不同的问题;授权和个性化。

大多数网站都会坚持使用电子邮件进行独特的授权,因为这些网站已经保证是独一无二的。 SO使用开放式身份验证,这意味着我很长时间没有指定用于身份验证的“用户名”。我的OpenID有我的电子邮件和密码,并处理SO的授权部分。

另一部分是个性化,如果他们愿意的话,应该允许用户选择重复的名称。这需要与身份验证细节相关联,并且通常使用由站点专门生成的单独的唯一编号来完成。然后,它会链接授权用户名和要显示的用户名。我猜这也构成了用户存储的数据库结构中主键的一部分。

如果您检查每个配置文件名称的链接,您会在网址中看到一个数字,这是在网站上唯一标识您的数字,并将twitter与您的电子邮件/用户名绑定,以便按{{1}登录}}。您的用户页面链接为https://stackoverflow.com/users/629665/twitter

虽然我可以在网站上清楚地看到您选择的显示名称和您的唯一ID,但我不知道您的授权身份,您可以保密,并有助于确保您的安全。

答案 3 :(得分:0)

- >选择用户名,不是一个好主意。 - >可能是你可以去电子邮件ID和用户名。

--> best is to Generate a unique ID for every user bro.

答案 4 :(得分:-1)

嗯,你的问题很模糊,我编辑了标题以使其更清晰。

毫无疑问如何识别用户。如果你看一下stackoverflow用户linfo链接,你会发现旧的自动增加的唯一编号。没问题。

因此,我想您的问题是一个用户如何识别另一个用户。我认为这并不是什么大问题,因为碰撞非常罕见,人们可以随时通过用户声誉和ID来判断。