将facebook id保存为int或varchar?

时间:2011-08-21 12:02:01

标签: mysql facebook facebook-graph-api

我的问题更多是咨询而不是技术问题。 我正在写一个Facebook应用程序,我在其中获取有关用户的一些信息,包括facebook_id 我想知道我是否应该在MySQL数据库中将用户ID保持为INT或VARCHAR?

7 个答案:

答案 0 :(得分:57)

Facebook使用 64位整数(bigint)作为用户ID。所以你在MySQL中使用Bigint UNSIGNED。

"As a reminder, in the very near future, we will be rolling out 64 bit user IDs. We encourage you to test your applications by going to www.facebook.com/r.php?force_64bit and create test accounts with 64 bit UIDs."

编辑:Facebook用户名与用户ID不同。用户名当然是varchar,但不会作为id返回。

答案 1 :(得分:13)

尽管不太可能,但facebook可以更改其ID的格式,因此为了使其具有未来性,我会使用varchar。

答案 2 :(得分:9)

类似的问题:Facebook user_id : big_int, int or string?

“我不会使用字符串。这会使比较变得痛苦,而且你的索引比他们需要的更笨拙。”

答案 3 :(得分:5)

引用facebook关于图API API v2.0的升级说明(2015年5月生效):

  

所有ID都是字符串。在v1.0中,ID通常是大数字。

其中(对我而言)意味着不保证用户ID是数字。事实上,Facebook建议您使用字符串:

https://developers.facebook.com/docs/graph-api/reference/v2.2/user#fields

  

名称:ID
  描述:id此人的用户帐户的ID。

     

此ID对每个应用都是唯一的,不能在不同的应用中使用(...)

     

type:string

虽然我必须承认我从未见过字母数字。

答案 4 :(得分:1)

使用BIGINT(64)存储Facebook用户ID 在这里:https://developers.facebook.com/blog/post/45/

答案 5 :(得分:0)

对于新数据类型,因为它们是grahp obj ID,我相信将它们保存为BINT是安全的。 但是,对于旧的“id”,例如pic,将它们保存为字符串(您可以很容易地看到它们的格式为xxxxxx_xxxxxxxx)

答案 6 :(得分:-4)

我使用INT,因为它不是那么大。在INT中搜索更快更好地进行排序