web应用程序,在url中公开数据库中的用户id

web应用程序,在url中公开数据库中的用户id,url,web-applications,Url,Web Applications,我只是想知道,在web应用程序(例如www.example.com/john-smith-4233)中,将数据库中的user_id添加到user_profile的url是否是一种好的做法。url实际上由数据库中的名字、姓氏和用户id组成。我想知道这是一种好的做法还是一种坏的做法。“john-smith-4233”部分将是一个唯一的用户名,每个人都可以根据url在google中键入例如“example john smith”之类的内容来找到一个人。有没有更好的方法来做这样的事情?我也在考虑在用户名

我只是想知道,在web应用程序(例如
www.example.com/john-smith-4233
)中,将数据库中的user_id添加到user_profile的url是否是一种好的做法。url实际上由数据库中的名字、姓氏和用户id组成。我想知道这是一种好的做法还是一种坏的做法。“john-smith-4233”部分将是一个唯一的用户名,每个人都可以根据url在google中键入例如“example john smith”之类的内容来找到一个人。有没有更好的方法来做这样的事情?我也在考虑在用户名后添加一个数字的方法,只有当这个名字和姓氏的用户存在时。。。但是,我必须始终查询数据库,因此我正在寻找最好的方法。

我最近也在考虑同样的问题。我不认为存在“既定的最佳实践”。我认为您的解决方案存在的问题是,大多数情况下,“firstname lastname”可能是唯一的,并且您无缘无故地在其上附加了一个混乱的数字。您可以尝试添加一个名为“canonical_name”的数据库字段,每次创建帐户时,您都会检查是否已经使用了“firstname lastname”。如果不是,则“firstname lastname”将成为新用户的规范名称。如果使用了它,则附加一个数字(可能是一个较低的数字1、2、3等),规范名称变成“firstname\u lastname\u 1”


我认为这与Facebook的做法类似。

谢谢,我也这么认为,但我也考虑到,当新用户登录时,我必须始终检查数据库。也许我反应过度了,想要一切都完美。我不妨选择这个选项。数据库就是用来做这些事情的,不是吗?一个新用户注册是一个相对少见的操作(与类似页面视图的操作相比)。每个用户注册一个额外的查询不会显著影响您的性能。