Проблема
В веб-приложении, имеющем дело с продуктами и заказами, я хочу поддерживать информацию и отношения между бывшими сотрудниками (пользователями) и заказами, которые они обрабатывали. Я хочу поддерживать информацию и отношения между устаревшими продуктами и заказами, которые включают эти продукты.
Однако я хочу, чтобы сотрудники могли убирать загроможденные интерфейсы администрирования, такие как удаление бывших сотрудников, устаревшие продукты, устаревшие группы продуктов и т. Д.
Я подумываю реализовать мягкое удаление. Итак, как это обычно делается?
Мои ближайшие мысли
Моя первая мысль - вставить столбец «flag_softdeleted
TINYINT NOT NULL DEFAULT 0» в каждую таблицу объектов, которые должны быть мягко удаляемыми. Или, может быть, вместо этого использовать метку времени?
Затем я предоставляю кнопку «Показать удаленные» или «Отменить удаление» в каждом соответствующем графическом интерфейсе. Нажав на эту кнопку, вы включите в результат мягко удаленные записи. У каждой удаленной записи есть кнопка «Восстановить». Имеет ли это смысл?
Твои мысли?
Также я буду признателен за любые ссылки на соответствующие ресурсы.