Можно не удолять, а делать софт делет, тоесть инсерт с тру в поле делетед, и каждая запись каждой сущности должна иметь createdBy там будешь писать юзер ид, софт делет будет делать апдейт сущности и кидать текущего ющерид, в базе триггером проверяешь старый createdBy равен ли новому, если нет то выкидываешь ошибку и её на бэке обрабатываешь
И не нужно выбирать данные для сравнения
Если софт делет не нужны, то просто в фоне некий джоб переодически сносит все софт делеты