@r4gn4r0k

TypeORM как лучше сгенерировать уникальный ID только из цифр длиной 6-8 знаков?

Здравствуйте. Работаю над проектом на Nest.js, к СУБД PostgreSQL запросы отправляю при помощи TypeORM. Возникла необходимость генерировать ID некоторых сущностей (Entity) в определенном формате 6ти или 8мизначные и только из цифр.
Мне пришла мысль: чeрез BeforeInsert запускать функцию, которая генерирует случайный ID из 6ти цифр, затем сверят по БД существует ли запись с таким ID, если не существует, то передает этот ID в BeforeInsert. Но я не уверен, что это самое лучшее решение для данной задачи., т.к. создается лишний запрос к БД, который в случае неуникального ID повторяется, пока не станет уникальным. Плюс, когда большая часть ID будет уже занята, это может затянуться на долгое время.
Есть ли еще какие-либо мыли, как это можно сделать лучше?

UPDATE: появилась другая мысль. Давать возможность БД работать по стандарту - генерировать ID по инкременту от предыдущего значения ID, но необходимо будет как-то контролировать, от какого числа начинается этот инкремент. Как в TypeORM с СУБД PostgreSQL это реализовать?
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы