Какой тип столбца лучше всего подходит для идентификатора пользователя Google+? - PullRequest
28 голосов
/ 29 июля 2011

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

104560124403688998123

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

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

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

Ответы [ 4 ]

17 голосов
/ 29 июля 2011

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

Таким образом, схема выглядит следующим образом:

ОтображениеТаблица:

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

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

6 голосов
/ 29 июля 2011

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

5 голосов
/ 02 июля 2013

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

1 голос
/ 30 октября 2013

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

...