Одна из распространенных проблем, с которой вы можете столкнуться при разработке своей базы данных, заключается в том, что вы хотите удалить строку из какой-либо таблицы в базе данных, фактически не удаляя ее.
Название этой концепции называется Мягкое удаление . Вы можете применить мягкое удаление, создав столбец с именем IS_DELETED УДАЛЕНО в нужной вам таблице. Этот столбец имеет тип Логическое значение . Если его значение равно True , то строка была удалена или невидима, чтобы быть точной.
Это простая в применении концепция, но она сопряжена с определенными издержками. Вы можете столкнуться с проблемами, когда строите сложные запросы к этой таблице; затем позже вы случайно обнаружите, что забыли учесть этот столбец в своих запросах из-за неправильных данных, которые они генерируют. В этот момент вы обнаруживаете, что должны включить IS_DELETED почти в каждом создаваемом вами запросе, содержащем эту таблицу.
Вот почему некоторые люди стараются избегать этого метода, чтобы применить мягкое удаление, создав архивную таблицу. Когда вы удаляете какую-либо строку из исходной таблицы, просто вставьте ее в архивную таблицу. Следовательно, в исходной таблице нет ошибок запроса и нет IS_DELETED накладные расходы.
Старайтесь избегать мягкого удаления, насколько это возможно, и старайтесь не использовать его, если в этом нет реальной необходимости. Обратите внимание, что мягкое удаление не имеет ничего общего с резервными копиями. Резервные копии должны выполняться независимо от того, применяете вы мягкое удаление или нет. Они должны применяться периодически, и сам период зависит от вашей заявки.
Оригинал: “https://dev.to/amrsaeedhosny/soft-deletion-26jc”