这是一个与我正在构建的网站相关的设计问题。
我有一个“玩家”表,它将存储姓名、密码、最后一个 IP、出生日期、头像链接、位置等。
当玩家登录时,将在数据库中搜索他们输入的用户名,并检查他们的密码(是的,当然密码是经过哈希处理的)。然后,他们将获得一些让他们保持登录状态的 cookie。
每次他们访问新页面时,都会使用 cookie 中的信息在数据库中查找正确的玩家。如果他们当前的 IP 与他们登录的最后一个 IP 匹配(可能是 10 秒前),则页面会输出他们的名字等等。
这是我的问题:我应该让 Player 表的主键是玩家的名字(我知道这是唯一的文本字段),还是应该为此创建一些任意的自动递增索引?
请记住,这也会对存储在 cookie 中的信息产生影响——无论是存储 int 还是文本中的用户名。同样,我想对该值进行某种散列(只是为了增加一点安全性),以便 cookie 不只包含 int 或用户名。
那么,就效率和设计而言,哪个是更好的选择呢?
编辑对数据库使用 VARCHAR 也可以,而且可能更快,我想。 EDIT2这个主键也将被其他表引用。