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

Какой лучший тип столбца для идентификатора пользователя Google+?

Google+ имеет очень длинные идентификаторы пользователей

+104560124403688998123

(21 символ), который невозможно ввести в поле BIGINT (не без знака)

Какой тип столбца вы бы использовали для таких идентификаторов?

Я не думаю, что варчар - хорошая идея

4b9b3361

Ответ 1

если длина идентификатора google является предсказуемой, используйте статический char(length), добавьте на него индекс и создайте первичный ключ целого числа (внутренний). Внутри вашего приложения вы сопоставляете данные с целым первичным ключом. Поэтому, если кто-то ищет по id google, вы просматриваете целочисленный первичный ключ для этого идентификатора google и выполняете остальные ваши запросы с помощью цельного первичного ключа.

Итак, схема выглядит так:

Таблица сопоставлений:

id (integer) | google_id (char(length)) 

Итак, если вы создаете другую таблицу, например комментарии и т.д., используйте первичный ключ id, если вы хотите найти все комментарии для определенного googleid, сначала получите внутренний идентификатор, а затем присоединитесь к комментариям. Таким образом, у вас есть только один критерий запроса для статического, проиндексированного поля char с предсказуемой длиной, все остальные соединения и запросы будут использовать целочисленный ключ.

Ответ 2

Я бы использовал то же, что и с Facebook: varchar.

Ответ 3

Я не могу найти официальную рекомендацию от google, но я использую десятичный 21,0, который работает правильно.

Ответ 4

в python при appengine Я сохраняю данные с помощью ndb.StringProperty и проверяю с помощью regex\d {15}, что дает небольшой запас. было бы действительно здорово узнать, что это REAL регулярное выражение для проверки этого поля