Мой вопрос носит скорее консультативный, чем технический характер. Я пишу приложение для Facebook, в котором извлекаю некоторую информацию о пользователе, включая facebook_id. Мне было интересно, должен ли я оставить идентификатор пользователя как INT или VARCHAR в базе данных MySQL?
Facebook использует 64-битные целые числа (bigint) для своих идентификаторов пользователя. Таким образом, вы используете Bigint UNSIGNED в MySQL.
"Напоминаем, что в самое ближайшее время мы представим 64-битные идентификаторы пользователей. Мы рекомендуем вам протестировать свои приложения, зайдя на сайт www.facebook.com/r.php?force_64bit и создав тестовые аккаунты с 64-битными UID. "
Редактировать: имена пользователей Facebook - это не то же самое, что имена пользователей. Имя пользователя, конечно, varchar, но не будет возвращено как идентификатор.
Хотя маловероятно, что Facebook может изменить формат своих идентификаторов, поэтому, чтобы сделать его будущим, я бы использовал varchar.
вопрос похож на: Facebook user_id: big_int, int или string?
"Я бы не стал использовать строку. Это делает сравнение болезненным, а ваши индексы - более грубыми, чем они должны быть.«
Цитировать примечания по обновлению Facebook, касающиеся API Graph v2.0 (вступает в силу в мае 2015 г.):
Все идентификаторы являются строками.В версии 1.0 идентификаторы часто были большими числами.
Что (для меня) означает, что идентификаторы пользователей не обязательно должны быть числами.Фактически, facebook рекомендует использовать строки:
https://developers.facebook.com/docs/graph-api/reference/v2.2/user#fields
Имя: id Описание: id Идентификатор учетной записи этого человека. Этот идентификатор уникален для каждого приложения и не может использоваться в разных приложениях (...) тип: строка
Имя: id Описание: id Идентификатор учетной записи этого человека.
Этот идентификатор уникален для каждого приложения и не может использоваться в разных приложениях (...)
тип: строка
Хотя я должен признать, чтоникогда не видел буквенно-цифровой идентификатор.
Используйте BIGINT (64) для хранения идентификаторов пользователей Facebook. Вот, пожалуйста: https://developers.facebook.com/blog/post/45/
Для новых типов данных, так как они представляют собой grahp obj ID, я считаю, что безопасно сохранять их как BINT. Однако для старого «id», например, рис, сохранить их в виде строки (вы можете легко увидеть, что они в формате xxxxxx_xxxxxxxx)
Я бы использовал INT, потому что он не такой большой. Поиск в INT быстрее и удобнее для заказа