Google+有很长的用户ID
104560124403688998123
(21个字符),无法输入BIGINT字段(非无符号)
您将使用哪种列类型进行此类ID?
我认为varchar不是好主意
答案 0 :(得分:17)
如果google id的长度是可预测的,请使用静态char(length)
,在其上添加索引并创建(内部)整数主键。在应用程序内部,您将数据映射到整数主键。因此,如果有人使用Google ID进行搜索,则会查找此Google ID的整数主键,并使用整数主键执行其余查询。
所以架构如下:
映射表:
id (integer) | google_id (char(length))
因此,如果您创建其他表格,例如评论等,请使用主键id
,如果您要查找某个googleid的所有评论,请首先获取内部ID,然后加入评论。这样,在具有可预测长度的静态索引字段上只有一个查询条件,所有其他连接和查询将使用整数键。
答案 1 :(得分:6)
我会像使用Facebook一样: varchar 。
答案 2 :(得分:5)
我找不到谷歌的官方推荐,但我使用十进制21,0 正常工作。
答案 3 :(得分:1)
在appengine的python中我使用ndb.StringProperty保存数据并使用正则表达式\ d {15}进行验证,从而给出一点余量。知道验证这个领域的真正正则表达式是什么真的很棒