通过用户名而不是id来建立关系

时间:2014-07-08 17:30:08

标签: php mysql

所以让我们说我有一个用户表,然后是user_profile表。要连接关系,user_profile表中将有一个user_id行。现在当我构建我的应用程序时,我想让我的url显示用户名而不是user_id示例:

http://www.example.com/username/profile

http://www.example.com/user_id/profile

所以我发现自己正在做的是通过用户名获取user_id,然后获取配置文件信息,这只会无缘无故地添加额外的查询。我的问题是我可以通过用户名创建关系,这与users表中的id行一样独特。或者这是一种不好的做法,我应该坚持使用user_id?

1 个答案:

答案 0 :(得分:2)

更好的想法是使用user_id加入表,但提供用户名作为参数。类似的东西:

select p.*
  from users u
     , profiles p
 where u.id = p.user_id
   and u.username = ?