所以让我们说我有一个用户表,然后是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?
答案 0 :(得分:2)
更好的想法是使用user_id
加入表,但提供用户名作为参数。类似的东西:
select p.*
from users u
, profiles p
where u.id = p.user_id
and u.username = ?