Рекомендации по мягкому удалению (PHP / MySQL)

Проблема

В веб-приложении, имеющем дело с продуктами и заказами, я хочу поддерживать информацию и отношения между бывшими сотрудниками (пользователями) и заказами, которые они обрабатывали. Я хочу поддерживать информацию и отношения между устаревшими продуктами и заказами, которые включают эти продукты.

Однако я хочу, чтобы у сотрудников была возможность убирать загроможденные интерфейсы администрирования, такие как удаление бывших сотрудников, устаревшие продукты, группы устаревших продуктов и т. Д.

Я подумываю реализовать мягкое удаление. Так, как это обычно делается?

Мои непосредственные мысли

Моя первая мысль - вставить столбец « flag_softdeleted TINYINT NOT NULL DEFAULT 0» в каждую таблицу объектов, которые должны быть мягко удаляемыми. Или, может быть, вместо этого использовать временную метку?

Затем я предоставляю кнопку «Показать удаленные» или «Отменить удаление» в каждом соответствующем графическом интерфейсе. Нажав эту кнопку, вы включите в результат удаленные записи. У каждой удаленной записи есть кнопка «Восстановить». Имеет ли это смысл?

Ваши мысли?

Также я буду признателен за любые ссылки на соответствующие ресурсы.

25
задан 16 February 2011 в 18:29
поделиться