首頁 >後端開發 >php教程 >请问CSDN 的 ID 是如何生成的?

请问CSDN 的 ID 是如何生成的?

WBOY
WBOY原創
2016-06-23 14:24:591237瀏覽

当使用第三方登录时会生成一个 CSDN ID:u012365644

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


回复讨论(解决方案)

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

理论上绝对唯一,生成的方法应该是自增(这种编号的规则一般都是自己定义的)

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

哦,其实我也这样想过!

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


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

哦,其实我也这样想过!

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

第三方登录,第一次的时候,会在本地有保存信息的吧,这个时候要加入一个用户记录项



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

哦,其实我也这样想过!

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

第三方登录,第一次的时候,会在本地有保存信息的吧,这个时候要加入一个用户记录项

我是这样的:
1、一个user表、一个user_platform第三方账号绑定表
2、user_platform表中有id(自增)、uid(对应user表中的用户uid)、type(第三方标志如qq)、openid(第三方返回唯一id)
3、当第三方账号第一次登录时,首先会在user表中创建一账号,账号创建成功后,才会在user_platform表中,写入绑定记录,即记录新创建的用户uid和openid

同于先后顺序,所以在创建新用户账号时,我需要先得到uid!这是我的思路,请问你是怎么做的呢,第一次弄第三方登录?

我第一次弄这个,不知道思路正不正确

我表示好烂的ID  还不能改 

理论上绝对唯一,生成的方法应该是自增(这种编号的规则一般都是自己定义的)
我是这样的:
1、一个user表、一个user_platform第三方账号绑定表
2、user_platform表中有id(自增)、uid(对应user表中的用户uid)、type(第三方标志如qq)、openid(第三方返回唯一id)
3、当第三方账号第一次登录时,首先会在user表中创建一账号,账号创建成功后,才会在user_platform表中,写入绑定记录,即记录新创建的用户uid和openid

由于先后顺序,所以在创建新用户账号时,我需要先得到uid!这是我的思路,请问你是怎么做的呢,我第一次弄第三方登录

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

应该是自动增长函数 而不是标识列

mysql有自动增长的字段,保证唯一性
但是在插入数据时,如何先知道自增uid呢


mysql有自动增长的字段,保证唯一性
但是在插入数据时,如何先知道自增uid呢
插入数据成功,返回当前自增的id即可。



mysql有自动增长的字段,保证唯一性
但是在插入数据时,如何先知道自增uid呢
插入数据成功,返回当前自增的id即可。

数据插入成功,就不需要id了! 在插入一条记录的同时,如何保证生成的account字段唯一(其中uid自增)?

因为uid自增,所以想通过uid+字符串确保生成的账号唯一。

如果不能这样得到自增uid,就只有再写一条更新语句!

不会的自增的,因为CSDN肯定做了用户的分库,这样,多个库中都会有类似uid相同的,他的uid应该是随机出来的,只是这个随机的比较复杂而已

不会的自增的,因为CSDN肯定做了用户的分库,这样,多个库中都会有类似uid相同的,他的uid应该是随机出来的,只是这个随机的比较复杂而已

哦,tks

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn