Как я могу сделать корзину для приложения базы данных? - PullRequest
0 голосов
/ 01 сентября 2009

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

Edit:

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

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

  • RepName первичный ключ
  • ReportData

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

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

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

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

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

1 Ответ

2 голосов
/ 01 сентября 2009

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

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

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

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

...