Sobes.tech
Junior — Middle

Можете ли да обясните принципа на меко изтриване на данни и как се различава от пълното изтриване?

sobes.tech AI

Отговор от AI

Меко изтриване (soft delete) е подход, при който данните не се изтриват физически от базата данни, а се маркират като изтрити, например с помощта на специално поле (например is_deleted или deleted_at). Това позволява запазването на данните за възможно възстановяване или одит.

Пълното изтриване (hard delete) е физическото изтриване на записа от базата данни, след което данните не могат да бъдат възстановени.

Пример за меко изтриване в PHP с използване на полето is_deleted:

// Маркиране на запис като изтрит
function softDelete($id, $pdo) {
    $stmt = $pdo->prepare("UPDATE users SET is_deleted = 1 WHERE id = :id");
    $stmt->execute(['id' => $id]);
}

// Получаване само на неизтрити записи
function getActiveUsers($pdo) {
    $stmt = $pdo->query("SELECT * FROM users WHERE is_deleted = 0");
    return $stmt->fetchAll();
}

По този начин, мекото изтриване предотвратява загубата на данни и осигурява гъвкавост в управлението им.