почему не integer(decimal) c автоинкрементацией, никто толком сказать не может. Мб есть знатоки, которые знают, в каких кейсах что лучше юзать?)
Как правило, в распределённых системах, когда проще айдишники генерить распределённо из приложения, без «бутылочного горлышка» в виде одного sequence в одном мастер-инстансе СУБД.
Ещё, когда начинаешь партиционировать таблицы, то числовой айдишник начинает мешаться из-за требования постгреса включать ключ партиционирования в первичный ключ. А UUID достаточно большой, чтобы внутрь значения можно было зашить ключ партиционирования (например, таймстамп в случае UUIDv7).
Ну и integer очень маленький — можно влететь в integer overflow. Хотя бы bigint надо использовать
Ну я пару аргументов в пользу автоинкремента нашел
Использовать primary key в качестве человечного ключа (order № и т.п.) — плохая идея. И конкуренты видят, сколько у вас на самом деле заказов и клиенты хотят, чтобы их заказы/issue нумеровались по порядку (и без пропусков!!!1адын — в этот чат каждую неделю приходят с вопросом, как сделать, чтоб была нумерация без пропусков). Поэтому pkey отдельно, пользовательский айдишник — отдельно.
Ну да, как вариант неплохо
Обсуждают сегодня