Подтвердить что ты не робот

Сохранение идентификатора facebook как int или varchar?

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

Ответ 3

Аналогичный вопрос: Facebook user_id: big_int, int или строка?

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

Ответ 4

Чтобы процитировать заметки об обновлении facebook в отношении API-интерфейса графика версии 2.0 (с мая 2015 года):

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

Который (для меня) подразумевает, что идентификаторы пользователей не гарантируются как числа. На самом деле, facebook рекомендует использовать строки:

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

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

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

type: string

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

Ответ 6

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

Ответ 7

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