关系表中的用户名和用户ID

时间:2013-05-02 10:51:13

标签: relational-database username

我已经看到很多数据库在User表中同时使用用户名(字符串)和user_id(int),即使两者都是非常好的候选键本身。

拥有两者而不是仅拥有用户名有什么好处?我想用user_id来查找行比使用用户名更快。这只是一个表现问题吗?

1 个答案:

答案 0 :(得分:1)

如果两个字段都对条目编制索引,则使用其中一个进行搜索不会有任何区别(即使你的id是增量的,你也可以制作很酷的技巧,比如使用id来获取更快的日期之后创建的用户而不是使用creation_date非索引字段,例如)。

如果您需要创建一个用户列表,那么使用ID将会缩短字节数。

同样出于“匿名”的目的,即使有时候找到id的关联用户名也是微不足道的。

对我来说最重要的是,如果你愿意,你可以拥有多个具有相同ID的用户名,并且还可以更改与id相关联的用户名,这有时候很有用,就像在facebook开始时使用** embarrasingusernamehere **和你的奶奶/ gf /老板在你的** anotherembarrasignusername **中添加你或者在堆栈交换中,几年之后你想表明你有多好解决潜在雇主的问题。

所以,简而言之:用户名更容易记住人类,但用户标识允许一些很酷的额外内容。与互联网上的ip / domain事物几乎相同。