Скажем, у вас есть таблица базы данных ServiceCall, в которой записаны все сделанные вами сервисные вызовы. Каждая из этих записей содержит отношение «один к одному» с записью «Клиент», где хранится информация о том, какой клиент совершил Сервисный звонок.
Хорошо, предположим, что Клиент прекратил вести с вами деловые отношения, и вам не нужна запись Клиента в вашей базе данных. Больше не нужно, чтобы имя Клиента появлялось в раскрывающемся списке при создании новой записи ServiceCall.
Что ты делаешь?
Разрешаете ли вы пользователю удалять записи Клиента из базы данных?
Устанавливаете ли вы специальный столбец IsDeleted в значение true для этой записи Клиента, а затем убедитесь, что весь раскрывающийся список не будет загружать все записи, для которых IsDeleted имеет значение true? Хотя это предотвращает взлом старых записей во внутренних соединениях, оно также не позволяет пользователю добавлять новую запись с тем же именем, что и у старого клиента, не так ли?
Вы вообще запрещаете удаление? Просто разрешить его «отключить»?
Какие еще стратегии вы использовали? Полагаю, у каждого свой путь, мне просто нужно узнать ваше мнение.
Конечно, вышеупомянутое довольно упрощено, обычно запись ServiceCall связывается со многими другими таблицами сущностей. Все из которых столкнутся с той же проблемой, когда они должны быть удалены.