Sth*_*the 10 mysql userid auto-increment
我正在网站上工作,允许人们在线创建个人资料.我想知道使用MySQL AUTO_INCREMENTed ID作为我的用户ID 是否是正确的选择.还要记住,有一天我可能不得不跨多个服务器复制数据库?
例如,你会在Twitter或Facebook这样的网站上对userIds使用这种方法吗?
我之前尝试用PHP生成userIds.我使用过这样的东西:
function generateID() {
$possible = "1234567890";
$code = "";
$characters = mt_rand(7,14);
$i = 0;
while ($i < $characters) {
$code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
$i++;
}
return $code;
}
Run Code Online (Sandbox Code Playgroud)
这给出了我需要的值类型,但是我总是必须从DB检查该ID是否还不存在.
有没有更好的方法?
Pek*_*ica 17
mysql自动增量是否可以安全地用作userID?
如果你的安全系统是可靠的,基本上是的.但通常情况下,Web开发人员会因为暴露ID而感到不舒服,这些ID允许通过递增或递减数字来猜测其他 ID.许多人使用随机的多位数ID.
在一个更加模糊的说明中,数字ID还可以让竞争对手通过跟踪增量值的增长来估计您的增长.
不,这不是一个好主意,因为auto_increment ID难以移植。对于您的用户ID,您希望可以在数据库实例之间备份,还原,移动ID等,而不必担心ID的冲突。
最好使用UUID之类的东西来生成唯一的数字或字母数字字符串。