Sobes.tech
Junior — Middle

Μπορείτε να εξηγήσετε την αρχή της ήπιας διαγραφής δεδομένων και πώς διαφέρει από την πλήρη διαγραφή;

sobes.tech AI

Απάντηση από AI

Η μαλακή διαγραφή (soft delete) είναι μια προσέγγιση όπου τα δεδομένα δεν διαγράφονται φυσικά από τη βάση δεδομένων, αλλά σημειώνονται ως διαγραμμένα, για παράδειγμα, με τη χρήση ενός ειδικού πεδίου (όπως is_deleted ή deleted_at). Αυτό επιτρέπει τη διατήρηση των δεδομένων για πιθανή ανάκτηση ή έλεγχο.

Η πλήρης διαγραφή (hard delete) είναι η φυσική διαγραφή της εγγραφής από τη βάση δεδομένων, μετά την οποία τα δεδομένα δεν μπορούν να ανακτηθούν.

Παράδειγμα soft 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();
}

Με αυτόν τον τρόπο, η soft delete αποφεύγει την απώλεια δεδομένων και παρέχει ευελιξία στη διαχείρισή τους.