В идеале в системе вы не хотели бы «жестко удалять» данные. Лучший способ, который я знаю и который мы реализовали в прошлом, - это «мягкое удаление». Поддерживайте столбец состояния во всех ваших таблицах данных, который в идеале относится к факту, является ли строка активной или нет. Любая строка при создании является «Активной» по умолчанию; однако, поскольку записи удалены; они сделаны неактивными.
Все выбранные запросы, которые отображают данные в результатах фильтра экрана только для «активных записей». Таким образом, вы получаете следующие преимущества:
1. Восстановление данных возможно.
2. У вас может быть запланированная задача на уровне базы данных, которая может позаботиться о жестком удалении одного раза; если действительно нужно. (Как процедура SQL или что-то)
3. Вы можете иметь экран администратора, чтобы иметь возможность решать, какие учетные записи, записи и т. Д. Вы действительно хотите пометить для удаления
4. Временное отключение учетной записи также может быть реализовано тем же решением.
В продуктивных средах, где я работал, жесткое удаление - это строго No-No. Аудит Infact ведется для удаления также. Но если приложение действительно маленькое; это было бы до пользователя.
Я бы по-прежнему предлагал "виртуальное удаление" или "мягкое удаление" с периодической очисткой на уровне БД; который будет более эффективным и оптимизированным способом очистки.