Сохранение идентификатора в Facebook как int или varchar? - PullRequest
36 голосов
/ 21 августа 2011

Мой вопрос носит скорее консультативный, чем технический характер. Я пишу приложение для Facebook, в котором извлекаю некоторую информацию о пользователе, включая facebook_id.
Мне было интересно, должен ли я оставить идентификатор пользователя как INT или VARCHAR в базе данных MySQL?

Ответы [ 7 ]

57 голосов
/ 21 августа 2011

Facebook использует 64-битные целые числа (bigint) для своих идентификаторов пользователя. Таким образом, вы используете Bigint UNSIGNED в MySQL.

"Напоминаем, что в самое ближайшее время мы представим 64-битные идентификаторы пользователей. Мы рекомендуем вам протестировать свои приложения, зайдя на сайт www.facebook.com/r.php?force_64bit и создав тестовые аккаунты с 64-битными UID. "

Редактировать: имена пользователей Facebook - это не то же самое, что имена пользователей. Имя пользователя, конечно, varchar, но не будет возвращено как идентификатор.

13 голосов
/ 21 августа 2011

Хотя маловероятно, что Facebook может изменить формат своих идентификаторов, поэтому, чтобы сделать его будущим, я бы использовал varchar.

9 голосов
/ 21 августа 2011

вопрос похож на: Facebook user_id: big_int, int или string?

"Я бы не стал использовать строку. Это делает сравнение болезненным, а ваши индексы - более грубыми, чем они должны быть.«

5 голосов
/ 11 марта 2015

Цитировать примечания по обновлению Facebook, касающиеся API Graph v2.0 (вступает в силу в мае 2015 г.):

Все идентификаторы являются строками.В версии 1.0 идентификаторы часто были большими числами.

Что (для меня) означает, что идентификаторы пользователей не обязательно должны быть числами.Фактически, facebook рекомендует использовать строки:

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

Имя: id
Описание: id Идентификатор учетной записи этого человека.

Этот идентификатор уникален для каждого приложения и не может использоваться в разных приложениях (...)

тип: строка

Хотя я должен признать, чтоникогда не видел буквенно-цифровой идентификатор.

1 голос
/ 16 марта 2015

Используйте BIGINT (64) для хранения идентификаторов пользователей Facebook.
Вот, пожалуйста: https://developers.facebook.com/blog/post/45/

0 голосов
/ 22 августа 2011

Для новых типов данных, так как они представляют собой grahp obj ID, я считаю, что безопасно сохранять их как BINT. Однако для старого «id», например, рис, сохранить их в виде строки (вы можете легко увидеть, что они в формате xxxxxx_xxxxxxxx)

0 голосов
/ 21 августа 2011

Я бы использовал INT, потому что он не такой большой. Поиск в INT быстрее и удобнее для заказа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...