什么是Google+用户ID的最佳列类型?

问题描述 投票:30回答:5

Google+的用户名非常长

104560124403688998123

((21个字符),不能在BIGINT字段中输入(非无符号)

您将为此类ID使用哪种列类型?

我不认为varchar是个好主意

mysql google-plus
5个回答
19
投票

如果google id的长度是可预测的,请使用静态char(length),在其上添加索引并创建(内部)整数主键。在应用程序内部,您将数据映射到整数主键。因此,如果有人通过google id进行搜索,则需要查找该google id的整数主键,然后使用整数主键进行其余的查询。

所以架构看起来像:

映射表:

id (integer) | google_id (char(length)) 

因此,如果您创建另一个表,例如注释等,请使用主键id,如果您要查找某个googleid的所有注释,请先获取内部ID,然后加入注释。这样,您就可以在长度可预测的静态索引char字段上只有一个查询条件,所有其他联接和查询将使用整数键。


6
投票

我将使用与Facebook相同的方法:varchar


5
投票

我找不到来自Google的官方推荐,但我使用十进制21,0的方法正确。


1
投票

在appengine上的python中,我使用ndb.StringProperty保存了数据,并使用正则表达式\ d {15}进行了验证,因此提供了一些余量。知道使用REAL正则表达式验证此字段真是太好了


-3
投票

更好的解决方案,您应该使用TEXT数据类型将google登录ID存储在数据库中。长。

© www.soinside.com 2019 - 2024. All rights reserved.