Home  >  Article  >  Backend Development  >  请问CSDN 的 ID 是如何生成的?

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

WBOY
WBOYOriginal
2016-06-23 14:24:591177browse

当使用第三方登录时会生成一个 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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn