Чем руководствоваться при выборе типа идентификатора ( IdType) сущности

Подскажите, пожалуйста, чем руководствоваться при выборе Id Type ?

image

Из полезной информации:

БД: Postgres
Большинство таблиц в системе будут содержать данные в пределах 1000 записей.
Пара таблиц будет содержать около миллиона записей.

Вопрос на целую диссертацию. :slight_smile:
В сети можно много найти статей на тему, включая сравнения производительности.
Основная дилемма это GIUD или автоинкремент (long\integer).

Если совсем кратко, то GIUD универсальнее и проще в использовании.
Автоинкремент несколько быстрее из-за компактного числового типа данных.

Если нужна репликация данных между экземплярами БД или простой экспорт\импорт данных - GUID лучше, т.к. не дает конфликтов из-за уникальности.
А вот при использовании long\integer тут будут проблемы, т.к. велика вероятность, что с таким ID уже есть запись в БД.

Что касается производительности, то на миллионе записей, думаю, глобального выигрыша не будет чисто за счет long\integer в качестве ID.
Тут добавится еще и структура запросов, и фетч-план и много чего еще…

3 симпатии