Sobes.tech
Junior — Middle

Czy może Pan wyjaśnić zasadę miękkiego usuwania danych i czym różni się od pełnego usuwania?

sobes.tech AI

Odpowiedź od AI

Miękkie usunięcie (soft delete) to podejście, w którym dane nie są fizycznie usuwane z bazy danych, lecz oznaczane jako usunięte, na przykład za pomocą specjalnego pola (np. is_deleted lub deleted_at). Pozwala to na zachowanie danych do ewentualnego przywrócenia lub audytu.

Pełne usunięcie (hard delete) to fizyczne usunięcie rekordu z bazy danych, po którym dane nie mogą być odzyskane.

Przykład miękkiego usunięcia w PHP z użyciem pola is_deleted:

// Oznacz rekord jako usunięty
function softDelete($id, $pdo) {
    $stmt = $pdo->prepare("UPDATE users SET is_deleted = 1 WHERE id = :id");
    $stmt->execute(['id' => $id]);
}

// Pobierz tylko nieusunięte rekordy
function getActiveUsers($pdo) {
    $stmt = $pdo->query("SELECT * FROM users WHERE is_deleted = 0");
    return $stmt->fetchAll();
}

W ten sposób miękkie usunięcie zapobiega utracie danych i zapewnia elastyczność w zarządzaniu nimi.