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

StackOverflow https://stackoverflow.com/questions/1361525

Вопрос

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

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

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

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

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

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

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

Таблица пользовательских отчетов

  • Первичный ключ RepName
  • Первичный ключ userId
  • Удален

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

Это было полезно?

Решение

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top