Мой вопрос более консультативный, чем технический.
Я пишу приложение Facebook, в котором я получаю некоторую информацию о пользователе, включая facebook_id.
Мне было интересно, должен ли я хранить идентификатор пользователя как INT или VARCHAR в базе данных MySQL?
Сохранение идентификатора facebook как int или varchar?
Ответ 1
Facebook использует 64-битные целые числа (bigint) для своих идентификаторов пользователей. Таким образом, вы используете Bigint UNSIGNED в MySQL.
Изменить: имена пользователей 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
Хотя я должен признать, что я никогда не видел буквенно-цифровой идентификатор.
Ответ 5
Используйте BIGINT (64) для хранения идентификаторов пользователей Facebook.
Вот вы: https://developers.facebook.com/blog/post/45/
Ответ 6
Для новых типов данных, поскольку они являются объектами grahp obj ID, я считаю, что безопасно сохранять их как BINT. Однако для старого "id", например. pic, сохраните их как строку (вы можете легко увидеть, что они находятся в формате xxxxxx_xxxxxxxx)
Ответ 7
Я бы использовал INT, потому что он не такой большой. Поиск в INT быстрее и лучше для упорядочивания