Это довольно обычное требование. Есть веские причины, по которым им это нужно. Во-первых, им, возможно, придется иметь возможность фиксировать данные во времени. Например, репутация продавца может быть оценена на основе того, сколько людей, посещающих его презентации, являются клиентами, которых компания хочет сделать целевыми или нет. Поэтому, если Джон Смит больше не является целью, но был в марте, когда событие было проведено, вы не захотите удалить John Smith, вы хотите отображать начальные и конечные даты.
Существуют также нормативные/юридические причины, по которым вы, возможно, не захотите удалять записи. В системах учета, например, даже некорректные затраты НИКОГДА не удаляются, они откатываются с отрицательной записью. Это значит, что аудиторы могут следить за действиями, которые произошли.
Пришло время подвергать сомнению требования, но это не один из них. Совершенно верно, чтобы убедиться, что никакие записи не делятся. На самом деле, если это требование, я бы поставил триггер delete для каждой таблицы, чтобы гарантировать, что записи не могут быть удалены. Есть способы удалить, которые не приходят из приложения, поэтому было бы безответственно пропустить этот шаг. Вы можете также рассмотреть возможность проведения аудита.
Я бы удостоверился, что у вас есть мнения об активных записях каждой таблицы и убедитесь, что разработчики используют только представление (если только им не нужны мягкие удаленные записи), и у них нет ошибок, вызванных тем, что они забывают положить туда чтобы получить только активные.
Пока они имеют жесткий диск с бесконечным размером, то да. – PhillipH