Зачем запись помечают неактивной вместо физического удаления

Неактивная карточка остаётся в данных и требует правил использования. Объясняем логическое удаление, влияние на отчёты и проверку восстановления.

Целая оранжевая карточка сохранена в полупрозрачном футляре рядом с рядом действующих светлых карточек.

Карточка может перестать участвовать в новых операциях

Представим условный каталог товаров. Старую упаковку больше не продают, но заказы прошлых месяцев всё ещё ссылаются на её карточку. Команда хочет убрать её из выбора для новых заказов и сохранить возможность понять прежние покупки. Одним из вариантов может быть изменение статуса без физического удаления строки из базы.

Такой подход часто называют логическим, или мягким, удалением. В документации Microsoft EF Core показан признак удаления, по которому строки исключаются из обычного чтения, оставаясь доступными в специальных сценариях. Это пример механизма конкретного инструмента. В нашей учебной модели сначала нужно определить смысл статуса, а уже затем выбирать способ его обработки.

Название статуса должно соответствовать действию

«Снято с продажи», «временно недоступно» и «ошибочно создано» могут требовать разных решений. Если объединить их одним неясным признаком, пользователь не поймёт, почему карточка исчезла из списка. Для условного каталога предложим отдельно записать причину изменения и ожидаемое поведение в новых операциях. История покупок при этом отвечает на собственный вопрос.

Не следует автоматически превращать любой неактивный товар в удалённый. Например, временное отсутствие на складе может закончиться пополнением. В нашем процессе название статуса и право его менять согласуют с владельцем каталога. Техническая возможность скрыть строку не даёт готового ответа о том, какое состояние бизнеса она должна обозначать.

Отчёт должен учитывать назначение выборки

Если обычный список показывает только действующие карточки, это может подходить для нового заказа. Но исторический отчёт по продажам должен отдельно решать, что делать с покупками снятого товара. Если исключить их вместе с карточкой, прошлые итоги могут незаметно уменьшиться. Поэтому правило отбора нужно определять для каждого назначения результата.

В нашем учебном примере проверим два экрана: выбор товара сегодня и отчёт за прошлый месяц. На первом старая упаковка не предлагается, на втором прежняя покупка остаётся объяснимой. Если результаты расходятся с ожиданием, нужно исследовать правила чтения и связи. Не стоит считать исчезновение карточки из одного интерфейса подтверждением правильного поведения всей системы.

Изменение нужно донести до зависимых представлений

Карточка может использоваться в поиске, выгрузке и другом приложении. В документации Azure AI Search отдельно описана политика обнаружения логического удаления по значению столбца. Это пример того, что зависимому поисковому индексу требуется понятное правило обработки такого изменения, а не только обновление исходной таблицы.

Для нашего проекта предложим перечислить места использования каталога и проверить один изменённый товар в каждом нужном представлении. Где-то требуется скрытие, где-то сохранение исторической связи, где-то отдельная подпись. Одинаковая реакция во всех местах не обязательно правильна: важны согласованные последствия. Особенно полезно увидеть, какие копии обновляются позже основного каталога.

Восстановление тоже требует проверки

Предположим, статус изменили ошибочно. Возврат признака может снова сделать карточку видимой, но за время отсутствия могли появиться другая карточка или новые правила каталога. Для условного восстановления сначала проверим причину, связи и допустимость повторного использования. Обратимость одного поля не означает автоматического возвращения всех прежних условий.

Неактивность также не является обещанием полного стирания сведений или гарантией соблюдения требований к хранению. Здесь рассматривается техническое состояние учебной записи. Сроки хранения, доступ и физическое удаление требуют отдельных решений. В частности, сохранённая строка продолжает занимать место и может оставаться доступной тем, кто имеет соответствующий способ чтения.

Начните с наблюдаемых последствий

Запишите, что увидит пользователь после смены статуса, что произойдёт с прежними операциями и как проверяется восстановление. Отличие от физического удаления по связи разобрано в статье о судьбе заказов при удалении клиента. Сохранить объяснение изменения помогает журнал действий.

Продолжить изучение правил хранения можно на курсе «SQL инженер». Для начала достаточно одного условного товара и двух задач: больше не выбирать его для новой продажи и правильно объяснять продажу, которая уже состоялась.

SQL инженер
Курс
Доступ сразу
SQL инженер

SQL инженер — это специалист, который работает с базами данных, разрабатывает запросы, оптимизирует хранение данных и обеспечивает эффективную работу с информацией в компаниях.

С нуля до junior
Теория и практика
Диплом по окончании
500
₽/мес
УЗНАТЬ ПОДРОБНЕЕ

Источники

Читайте также

Обучить команду или нанять специалиста по данным: как выбрать
61

Обучить команду или нанять специалиста по данным: как выбрать

Как руководителю определить, какие навыки развивать внутри команды, когда нужна новая роль и почему обучение и найм часто дополняют друг друга.
Вертикальное и горизонтальное масштабирование данных: в чём разница
62

Вертикальное и горизонтальное масштабирование данных: в чём разница

Когда системе добавляют мощность одного сервера, когда делят работу между несколькими и почему увеличение ресурсов само по себе не решает любую проблему.
Журнал изменений данных: как выяснить, кто и когда изменил набор
60

Журнал изменений данных: как выяснить, кто и когда изменил набор

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

Занятия проходят
в Нова Дата СДО

Вебинары, практика и общение с преподавателем — в одном окне браузера.

Посмотреть интерфейс платформы
Календарь обучения в Нова Дата СДО
Курсы студента в Нова Дата СДО
Редактор кода для практики в Нова Дата СДО
Вебинары и расписание Ваши курсы Код в браузере
Нова Дата СДО — в реестре российского ПОРеестровая запись № 34931
Заявка отправлена
Отправим вам подборку курсов в течение 5 минут. С вами также свяжется наш специалист и даст карьерную консультацию.
Персональный промокод
На курс «Инженер по парсингу данных»
Введите код при оплате, чтобы применить скидку к программе.