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.