将facebook id保存为int或varchar?

Sha*_*our 36 mysql facebook facebook-graph-api

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

Gus*_*tav 57

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

"提醒一下,在不久的将来,我们将推出64位用户ID.我们建议您访问www.facebook.com/r.php?force_64bit并使用64位UID创建测试帐户来测试您的应用程序. ".

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

  • Facebook称用户ID是一个字符串.也许他们可能会转而使用字母数字.所以使用一个字符串.https://developers.facebook.com/docs/graph-api/reference/user (9认同)
  • 他们的引用是"数字字符串",这意味着虽然类型是字符串,但内容是一个数字.因此将其存储为"UNSIGNED BIGINT"很好,而存储为"varchar"只会使查找和比较更加麻烦.如果FB确实更改为他们没有的"字母数字",则会有关于它的弃用警告和开发博客文章. (3认同)

Ric*_*h S 13

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

  • 正确答案.Facebook称用户ID是一个字符串.也许他们可能会转而使用字母数字.所以使用一个字符串.https://developers.facebook.com/docs/graph-api/reference/user (2认同)
  • @Lohoris:古斯塔夫的回答是不安全的.我链接的Facebook文档说明用户ID是"数字**字符串**".这不像古斯塔夫在他的回答中所说的那样"大".一旦FB开始使用字母数字ID,或者如果它们返回不适合bigint的数字字符串,您的应用程序将会中断.将ID作为字符串存储更安全,就像Facebook定义它一样. (2认同)

Hof*_*off 9

类似的问题:Facebook user_id:big_int,int还是字符串?

"我不会使用字符串.这使得比较变得痛苦,你的索引比他们需要的更笨拙."


Fuz*_*Ami 5

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

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

哪个(对我来说)暗示用户标识不能保证是数字.事实上,Facebook建议您使用字符串:

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

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

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

type:string

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

  • 现在它说"数字字符串"代替,这基本上意味着他们对我们很开心,我想? (4认同)