либо использовать guid для PK? Цель - не много улучшить безопастность с минимальной потерей производительности.
Пока вижу два пути:
1. В бд использовать int autoincrement, перед отправкой данных клиенту хешировать поля с id с помощью hashid и при получении декодировать. Используется graphql и это вроде можно автоматизировать(не уверен). Очень не удобно при дебаге
2. В бд вместо int autoincrement использовать uuid/cuid. В этом случае ничего преобразоывать не надо, но страдает производительность если использовать string для колонки либо страдает читаемость есть использовать binary.
Не эксперт, но на счёт того что страдает производительность из-за uuid я бы хотел пруфов)
Наверное имеется ввиду, что поиск по числам идёт быстрее чем по строкам, тут в принципе согласен, но там такие доли секунды что вообще не заметно))
Не факт, с uuid же в постгре можно работать как с числом, и тип колонки идёт как отдельный тип данных uuid, мб и есть различия в скорости только хз в чью сторону)
Я, кстати, с postgres не сравнивал, но в mssql разница есть)
Ну я тоже не утверждаю свою правоту) просто сильно сомневаюсь что есть прям ощутимые отличия в скорости
А какая бд?
У нас первый вариант, hashids только на проде через env включается
Интересно как в если uuid pk то как он бинарное дерево строит? Перед началом какой-то префикс?
Cами преобразоываете или пакет есть готовый? Пока не знаю как это делается с graphql.
Сами, просто в резолверах
Обсуждают сегодня