Pull to refresh

Comments 18

А зачем оставлять удалённых пользователей в той же таблице, в которой хранятся активные? В чём смысл? Почему их не копировать в отдельную таблицу?

Потому что автор молод, горяч и не вкусил всех прелестей и никому ненужных приседаний на ровном месте с soft-delete-ом.

Да, хороший разбор. И как верно заметил @corporaldev в комментариях к ней

Есть два типа людей: те, которые думают, что soft-delete - это генианльно и те, которые его уже выпилили из проекта.

soft-delete не является deprecated и каждый инструмент подходит под решение разных задач. Мы не испытываем проблем при работе с ним.

У нас записи удалённые остаются в бд чисто чтобы посмотреть что удалено и кто удалил (в рамках статьи). Поэтому нас часть проблем не касается.

Если при удалении копировать запись в другую таблицу. В бд всегда найдётся куча данных, на которые ссылалась запись, придётся эти записи копировать в новую таблицу. Проще сразу использовать envers При мягком удалении не нарушается консистентность данных и нет необходимости создавать новую таблицу для каждой сущности.

Проще сразу использовать envers

Собственно об этом и был вопрос ))

  1. Не было задачи хранить всю историю изменений сущности, только кто создал/изменил/удалил.

  2. Отдельно таблицу заводить скажем под 10 сущностей = + 10 таблиц. И в случае чего это дополнительный join

это дополнительный join

И что это за случай такой, когда это является проблемой?

например какой нибудь тяжёлый отчёт

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

Зачем данные о пользователях хранить в сущности? ID недостаточно?

Мне хотелось полностью делегировать это приложению, но погуглив, я не нашёл какого-то явного решения.

Вроде есть какой-то аудит из коробки https://docs.spring.io/spring-data-jpa/reference/auditing.html

Идентификатор пользователя не информативно

Зато приводит к дупликации данных, увеличению их объёма и непоняткам, если пользователь свои данные поменял.

Наверное, мы друг друга не поняли, идентификатор сохранять не информативно для примера, конечно, я с вами согласен, ID более чем достаточно.

Sign up to leave a comment.