【发布时间】:2014-07-09 01:38:40
【问题描述】:
假设我有一个用户表,然后是一个 user_profile 表。要连接关系,在 user_profile 表中会有一个 user_id 行。现在,当我构建我的应用程序时,我喜欢让我的 url 显示用户名而不是 user_id 示例:
http://www.example.com/username/profile
不是:
http://www.example.com/user_id/profile
所以我发现自己正在做的是通过用户名获取 user_id,然后获取配置文件信息,这只是无缘无故地添加了一个额外的查询。我的问题是我是否可以通过用户名建立关系,该用户名与用户表中的 id 行一样唯一。还是这是不好的做法,我应该坚持使用 user_id?
【问题讨论】:
-
你是如何构建这个应用程序的?在 URL 中包含用户名并没有什么“坏处”。通常这只是通过路由正确解码 URL 参数的问题。如果您的用户名是唯一的,您可以直接按名称获取用户,无需 ID。
-
虽然手头有 ID,但通过 varchar 加入确实是不好的做法。检索用户 ID 的额外查询可以忽略不计。