Как я могу сделать корзину для приложения базы данных?

У меня есть приложение базы данных, я хочу разрешить пользователю восстанавливать удаленные записи из базы данных, например, в Windows у нас есть корзина для файлов. Я хочу сделать то же самое, но для записей базы данных. Предположим, что у меня много связанных таблиц. у которых много полей.

Редактировать:

скажем, что у меня есть следующие структуры:

Таблица отчетов

  • Первичный ключ RepName
  • ОтчетДанные

Таблица пользователей

  • Идентификатор первичного ключа
  • Имя

Таблица отчетов пользователей

  • Первичный ключ RepName
  • Первичный ключ идентификатора пользователя
  • IsDeleted

теперь, если я помещу поле isdeleted в таблицу UserReports, пользователь не сможет снова добавить ту же запись, если она помечена как удаленная, потому что запись уже есть, и это приведет к дублированию.


person Wael Dalloul    schedule 01.09.2009    source источник


Ответы (1)


Примечание. Я всегда использую суррогатный первичный ключ.

Добавьте столбец с меткой времени «deleted_at». Когда пользователь удаляет запись, поместите туда текущее время. Сделайте это ключевой частью вашего ограничения.

В каждом запросе не забывайте искать только те записи, которые имеют значение null в полеDeleted_at.

Некоторые фреймворки (например, ActiveRecord) делают это тривиальным.

person Bragi Ragnarson    schedule 01.09.2009
comment
Я думал об этом, это создаст много проблем для Ограничений, которые я поставил на столы. посмотрите еще раз после добавления дополнительной информации к моему вопросу .. - person Wael Dalloul; 01.09.2009
comment
ОК, тогда используйте столбец меток времени :) - person Bragi Ragnarson; 01.09.2009