170 похожих чатов

А в качестве первичного ключа что лучше использовать: uuid или

Int?

35 ответов

11 просмотров

Я б не трогал uuid для учебных задач, если задача не в этом.

It depends. По-умолчанию лучше использовать int \ bigint если у тебя нет специфических требований.

Sigdra Xuaenbor
Почему?

Он приносит свои приколы при реализации, которые надо понимать.

Проксимов Прксимович
Какие?

Место жрёт, сортировки нет (при поиске каких-нибудь дублей может быть актуально), шардинг по модулю id идёт лесом. Ну и ещё пачка подобных нюансов.

Я бы даже сказал если у тебя постгрес, то следует использовать id BIGINT GENERATED ALWAYS AS IDENTITY

evle
Место жрёт, сортировки нет (при поиске каких-нибуд...

там в генерации ж таймстамп учавствует, сортировка работает

evle
Место жрёт, сортировки нет (при поиске каких-нибуд...

Ну это нюансы, да. Но можно хранить и то и то. Для пет проекта в целом пофиг на эти вещи как я выше сказал

Проксимов Прксимович
Ну это нюансы, да. Но можно хранить и то и то. Для...

То пет, а то учебный. Банально пока дебажить будет, задолбается копипастить, чтобы разобраться, что к чему привязано.

evle
То пет, а то учебный. Банально пока дебажить будет...

Преувеличиваешь) у нас все на юидах, это не является какой-то проблемой

Проксимов Прксимович
Преувеличиваешь) у нас все на юидах, это не являет...

Не знаю, пока мы не строим что-то распределённое и не знаем, зачем ещё нам нужен uuid, я всё ещё считаю, что это оверкилл без каких-либо плюсов. Банально можно себе всрать производительность на ровном месте.

evle
Не знаю, пока мы не строим что-то распределённое и...

Я придерживаюсь мнению что возвращать наружу стоит почти всегда только ююид. Если ничего не возвращаешь наружу то пожалуйста, используй инты

evle
Зачем снаружи уид и что наружа будет с ним делать?

Представь что Ты делаешь апишку для клиентов. Стало понятнее?

Проксимов Прксимович
Представь что Ты делаешь апишку для клиентов. Стал...

It depends. Во-первых, кто сказал, что api должно где-то первичный ключ возвращать?

evle
It depends. Во-первых, кто сказал, что api должно ...

Я говорил про то что наружу надо отдавать юиды, а не про то что они должны быть первичным ключем

Проксимов Прксимович
Я придерживаюсь мнению что возвращать наружу стоит...

Я не вижу проблемы возвращать наружу инты, если у тебя контроль доступа не обеспечивается одними лишь идентификаторами

Alex
Я не вижу проблемы возвращать наружу инты, если у ...

А я слишком много видел и знаю что в любой достаточно большой системе неизбежны баги, и возможно в том числе с access control) Теория хаоса, все дела 😁

Это уже близко к security through obscurity.

evle
Это уже близко к security through obscurity.

В каком-то смысле да. Но вообще это всегда баланс. Обычно цена хранения юида не превышает дополнительных гарантий безопасности

Проксимов Прксимович
В каком-то смысле да. Но вообще это всегда баланс....

Но я в каком-то смысле предвзят, потому что занимался поиском таких уязвимостей) Это как полицейские видят везде преступников)

Проксимов Прксимович
В каком-то смысле да. Но вообще это всегда баланс....

Каких именно гарантий? Важно понять, от чего мы защищаемся и не делаем ли мы хуже. Например, часто уходят от последовательных ID чтобы скрыть порядок и время создания сущностей. И тут приходим мы с uuid. Но чтоб не разломать сортировку, мы делаем его ulid. В итоге — таймстемп читается прямо из уида. Круто?

evle
Каких именно гарантий? Важно понять, от чего мы за...

Я про ulid ничего не говорил это раз. Порядок создания сущностей, бизнес метрики, это все можно случайно спалить. Дальше - при проблемах с acces-control имеем IDOR. Весьма Неприятно в некоторых случаях

Проксимов Прксимович
Я про ulid ничего не говорил это раз. Порядок созд...

А я о том, что "отдавать уид" само по себе ничего не лечит, а может сделать хуже чем было (полный таймстемп вместо просто порядка). Важно понимать, что и от чего мы защищаем и исходя из этого выбирать меры.

evle
Каких именно гарантий? Важно понять, от чего мы за...

Спорное "круто", потому что время создание и обработки сущности становится выше, не говоря про другие возможные проблемы. Uuid, как и его разновидность ulid, не являются серебряной пулей...

evle
А я о том, что "отдавать уид" само по себе ничего ...

Вообще важно понимать что делаешь, тут не поспоришь 😁 Но если ты аргументом выбрал что «можно накосячить», то это ровно тот же самый аргумент который можно применить и в мою пользу)

Проксимов Прксимович
Вообще важно понимать что делаешь, тут не поспориш...

Ну, решение с UUID заведомо сложнее и создаёт видимость защиты от чего-то. Так что нет, нельзя применить.

evle
Ну, решение с UUID заведомо сложнее и создаёт види...

Я не вижу какой-то значительной сложности в использовании ююида. Idor’ы почти всегда плохо.

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
How to create an OS in C? what to study?
Linus
18
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
9
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Карта сайта