Не удаление создаст новый класс ошибок для всех будущих запросов. Не забывайте, что написание запросов часто делают опытные пользователи (то есть не ИТ-специалисты) и младшие разработчики. Таким образом, теперь каждой таблице, в которой недопустимые данные помечены только активным флагом BIT, потребуется дополнительный оператор AND в предложении WHERE для каждого запроса с настоящего момента и до бесконечности. Это поможет пользователям попасть в пропасть неудачи, а не в пропасть успеха. Тем не менее, я настоятельно рекомендую вам в любом случае реализовать эти системы флагов, потому что без плохого дизайна разработчикам технического обслуживания не нужно исправлять многочисленные ошибки, которые это создаст.
Насколько ценно иметь исторические данные в таблице? Если бизнес, если смотреть в будущее, иметь старые данные в таблицах, может быть просто обузой - это создает проблемы при создании ограничений (все ограничения должны быть изменены, чтобы исключить данные, которых вы не хотели). Обеспечение качества данных усложняется необходимостью постоянно переопределять то, что является «старым дерьмом, которое мы боимся удалять, но никогда не хотим когда-либо использовать или обновлять», и новыми вещами, которые нас интересуют.
Это было удалено, потому что это была ошибка? Если строка соответствует сущности в реальной жизни, может быть, интересно сохранить и установить флаг «испарился», «мертв», «покинул здание». Если вы случайно вставили строку, которая не соответствует сущности в реальной жизни, УДАЛИТЬ не является плохой вещью. Разве воображаемые клиенты, которых никогда не было, важно держать в таблице клиентов?
И, наконец, личность играет большую роль. Люди тоже могут быть сумасшедшими с данными. Если администратор БД хранит все свои газеты более 30 лет назад и не любит удалять данные, возможно, ему следует убедиться, что он принимает решения о дизайне данных, основываясь на достоинствах, а не на несущественных личных предпочтениях.