日期:2014-05-16  浏览次数:20457 次

请问CSDN 的 ID 是如何生成的?
当使用第三方登录时会生成一个 CSDN ID:u012365644

请教该ID是如何生成的? 绝对唯一吗?

------解决方案--------------------
可以考虑数据库中的id自动增长。
------解决方案--------------------
理论上绝对唯一,生成的方法应该是自增(这种编号的规则一般都是自己定义的)
------解决方案--------------------
引用:
Quote: 引用:

可以考虑数据库中的id自动增长。


哦,其实我也这样想过!

用户表有一字段account,该字段唯一!
当第三方账号登录时,会注册生成一随机账号substr('U'.$uid.uniqid(rand()),0,10),但其中的这个$uid如何获取呢?


第三方登录,第一次的时候,会在本地有保存信息的吧,这个时候要加入一个用户记录项
------解决方案--------------------
我表示好烂的ID  还不能改 
------解决方案--------------------
mysql有自动增长的字段,保证唯一性
------解决方案--------------------
应该是自动增长函数 而不是标识列
------解决方案--------------------
引用:
Quote: 引用:

mysql有自动增长的字段,保证唯一性

但是在插入数据时,如何先知道自增uid呢

插入数据成功,返回当前自增的id即可。
------解决方案--------------------
不会的自增的,因为CSDN肯定做了用户的分库,这样,多个库中都会有类似uid相同的,他的uid应该是随机出来的,只是这个随机的比较复杂而已