есть в бд(типа добавить что-нибудь в конец строки) перед сохранением. Это сделать в отдельном сервисе, или просто помечать сущность что поле не уникально и сущность уже внутри разруливает?
сущность про уникальность вещей в других сущностях знать ничего не может. Потому тебе нужно что-то снаружи что будет задавать эту политику в случае конфликта
Понятно, спасибо)
Ну тут есть вариант, что именно в сущности будет генериться логика создания "уникальной" строки. Т.е. вышибает констрейнт, ловим, в сущности вызываем метод генерации строки, она что-то там добавляет. Ретрай и так по кругу. Ну чтобы сеттер на поле не городить. Или плохая идея ?
И в один "прекрасный" момент это "по кругу" зациклится... Если что-то может пойти не так, оно обязательно так пойдет))
Ну ретрай ограниченный
очень маловероятно просто потому что внутри сущности у тебя нет возможности проверить уникальность. Скорее всего упущена какая-то стадия в пайплайне обработки данных
уперлись в ограничитель, уникальность не нашли, что делаем?)
Ага) Так что лучше так не делать) и придумать заранее и проверяльщик внешний и заранее точную стратегию добавления уникального)
Ну согласен :) тем более что алгоритм может быть сложнее чем область возможностей сущности
я делаю это в репозитории
Грубо говоря это генерация уникального slug. Для репо звучит не очень
Ну наверное да.
по хорошему репозиторий должен быть тупым. get/add может быть exists (врядли) и может быть delete (плохая идея)
А почему add в repo норм а delete плохо?
Value Object с алгоритмом генерации
У меня бзик на тему того что данные лучше не удалять, если это не изолированная штука которую надо по закону удалять, типа персональные данные
эти данные тебе принесут денег? без них система умрет?)
Боится нарушить консистентность походу
у бизнеса спросить надо. Какие-то данные можно конечно было бы и удалить, но это ж надо фичу пилить... зачем... пусть лежит, не мешает. Место на диске сча стоит как грязь. Ну то есть у меня настолько загоны что какой-нибудь "профиль юзера" у меня храниться должен как снэпшеты с ревизиями + инфа когда создали и т.д. Тотальный аудит всего и вся. Ну и да, часть данных меня закон обязывает 7 лет хранить_
Обсуждают сегодня