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