Какой тип PostgreSQL выбрать для 36-символьного идентификатора?

Вы создаёте таблицу tokens, в которой нужно хранить уникальные идентификаторы фиксированной длины (36 символов) для API-доступа. Какой тип данных наилучшим образом подходит для хранения этих значений?

Короткий ответ

Что ответить на собеседовании

Вы создаёте таблицу tokens, в которой нужно хранить уникальные идентификаторы фиксированной длины (36 символов) для API-доступа. Какой тип данных наилучшим образом подходит для хранения этих значений?

Подробный разбор

Ответ с пояснениями

Условие

Вы создаёте таблицу tokens, в которой нужно хранить уникальные идентификаторы фиксированной длины (36 символов) для API-доступа. Какой тип данных наилучшим образом подходит для хранения этих значений?

bytea
uuid
char(36)
varchar(36)
text

Решение

Если идентификаторы действительно имеют формат UUID, в PostgreSQL выбирают uuid. Одна длина 36 символов ещё не доказывает, что произвольная строка является UUID.

uuid хранит 128-битное значение и проверяет допустимый формат. Для произвольного 36-символьного токена подойдут text или varchar(36) с CHECK на точную длину; char(36) дополняется пробелами и обычно не даёт преимущества. Уникальность задают отдельным ограничением UNIQUE. Для секретов API также важно продумать безопасное хранение, а не считать тип данных защитой.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку