Удаление записей в базе данных unpermenantley (soft-delete)

История

Я ' m собираюсь написать код для управления удаленными элементами в моем приложении, но я собираюсь мягко удалить их, чтобы я мог вернуть их обратно, когда мне нужно. Когда дело доходит до сокрытия или удаления элементов, я должен соблюдать иерархию в логике моего приложения.

Я логически помещаю свои элементы в три контейнера: страну, город, район и бренд. Каждый товар должен принадлежать стране, городу, району и бренду. Теперь, если я удалил страну, она должна удалить города, районы, бренды и товары, принадлежащие данной стране. и если я удалю город, он также должен удалить все, что находится под ним (районы, бренды и т. д.)


Примечание

Когда я удаляю страну и удаляю связанные бренды, я должен позаботиться о том, чтобы бренд мог иметь элементы в более чем одной стране.


Вопрос

Предлагаете ли вы

  1. пометить элементы (будь то страна, город, элемент и т. д.) как удаленные, и это потребует большого количества кода для проверки каждый раз когда какой-либо элемент загружается из базы данных, если он удален или нет, а также некоторые дополнительные поля для отметки, если город, которому он принадлежит, удален, а страна, которой он принадлежит, удалена и т. д.

  2. Переместите каждый удаленный материал в определенную таблицу (DeletedCountries, Deleted Cities и т. д.) и сохраните идентификаторы элементов, с которыми он был связан, чтобы я мог вставить их позже в исходную таблицу. и, конечно, это сохранит в моем приложении весь код, который сможет проверить все удаленные элементы и убедиться, что вся иерархия удалена.

  3. Может быть, у вас есть лучший подход / совет / идея для достижения такой цели!

7
задан Kashef 9 March 2011 в 03:46
поделиться