Это может не применяться, если вы не используете .NET, но в LightSpeed ORM есть встроенная функция, называемая «мягкое удаление». В основном, когда у вас есть поле DeletedOn на вашей таблице, LightSpeed будет вставлять время, когда оно было удалено. Он автоматически обрабатывает это при обычном выборе (например, где Deleted == null), чтобы удаленные элементы больше не отображались. Затем вы можете написать процесс синхронизации, который обнаружит удаленное состояние, проверив это поле.
Вы, конечно, можете указать в механизм запросов включить удаленные результаты.
Mindscape LightSpeed ORM
Я также предполагаю, что здесь мы говорим об одном и том же: -)