Идентификаторы: UUID и bigint
UUID удобен для независимого создания записей и публичных идентификаторов. Имя поля и его тип — разные решения.
Проверено Изменено
Плохо
CREATE TABLE orders (
order_id bigint PRIMARY KEY
);
-- Два независимых сервиса выдали order_id = 42.
Хорошо
CREATE TABLE orders (
order_id uuid PRIMARY KEY DEFAULT uuidv7()
);
-- PostgreSQL 18: генерация без общего счётчика.
Почему это важно
UUID уменьшает зависимость от единого генератора. Он не заменяет проверку доступа; UUIDv7 раскрывает временную составляющую.
Когда применять
Числовой identity допустим в централизованной БД. UUIDv7 есть в PostgreSQL 18; UUIDv4 через gen_random_uuid() подходит там, где v7 недоступен.
Кто что делает
Человек
Выбирает требования к публичности, генерации и совместимости идентификаторов.
AI-агент
Готовит схему или миграцию, проверяет граничные значения и совместимость с текущими запросами.
Контроль результата:
- Где создаётся идентификатор? Нужен ли единый счётчик? Проверяется ли доступ независимо от UUID?
Как проверить у себя
- Где создаётся идентификатор? Нужен ли единый счётчик? Проверяется ли доступ независимо от UUID?
Первоисточники
История изменений на GitHubДата проверки отражает содержательную сверку. Синхронизация сайта не обновляет её автоматически.