Executando verificação de segurança...
3

Você sabe o que é Soft Delete?

Introdução - O que é Soft Delete?

O soft delete é uma técnica de gerenciamento de dados que envolve marcar registros como excluídos em vez de removê-los fisicamente do banco de dados. Isso permite que os dados excluídos sejam recuperados, se necessário, e mantém um histórico de auditoria. Em teoria, o usuário vai receber uma mensagem que seus dados foram deletados, mas na verdade eles ainda estão gurdadados no banco de dados.

Seja você usuário de Windows, Linux ou Mac, com certeza você conhece o conceito de lixeira (sim, lixeira), quando você tem um arquivo ou pasta que não tem mais uso, você provavelmente apaga esse arquivo, mas por padrão, ele não é removido do seu HD ou dispositivo de memória automaticamente, ele vai para a lixeira, onde você pode decidir se esse arquivo será apagado permanentemente ou restaurado para o lugar de onde foi ‘apagado’.

O Soft Delete é uma técnica que faz exatamente o mesmo, você apaga um item/registro através de sua aplicação e ele some, porém ele continua existindo no banco de dados e caso você queira, você pode apagá-lo permanentemente (excluindo do db) ou então restaurá-lo como se nada tivesse ocorrido.

Implicações legais

Soft delete pode ter implicações legais, especialmente em setores regulamentados. Alguns regulamentos, como o Regulamento Geral de Proteção de Dados (RGPD), podem exigir que você mantenha um registro de todas as alterações nos dados. O soft delete ajuda a cumprir esses requisitos, pois preserva a trilha de auditoria das exclusões. Mas, se não houve consentimento do usuário para tal ação pode ser um problema jurídico.

Implementação em Laravel

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class SeuModelo extends Model
{
    use SoftDeletes;

    protected $dates = ['deleted_at'];
}

ORM Eloquent presente no Laravel consegue fazer Soft Delete sem precisar instalar nenhum componente extra, com apenas algumas configurações e você poderá apagar, restaurar ou apagar permanentemente qualquer registro através de sua aplicação

Implementação em JS

No mundo do Node.js, você pode implementar o soft delete de várias maneiras, dependendo do banco de dados que você está usando. Aqui está um exemplo de como você pode fazer isso com o
Mongoose (usado com o MongoDB):

const mongoose = require('mongoose');

const seuSchema = new mongoose.Schema({
    // Seus campos de modelo
    deleted: { type: Boolean, default: false }
}, { timestamps: true });

seuSchema.statics.softDelete = async function (id) {
    return this.findByIdAndUpdate(id, { deleted: true });
};

seuSchema.statics.restore = async function (id) {
    return this.findByIdAndUpdate(id, { deleted: false });
};

const SeuModelo = mongoose.model('SeuModelo', seuSchema);

Este exemplo cria um campo deleted que é definido como true quando um registro é "excluído". O modelo inclui métodos estáticos softDelete e restore para facilitar a marcação e recuperação de registros excluídos.

Conclusão

Soft Delete é algo interessante, sofisticado e é um ótimo recurso para qualquer aplicação, o que foi escrito aqui é só um exemplo de aplicação do recurso, mas as possibilidades são várias, você pode, por exemplo, criar um sistema de lixeiras para posts de um blog, se for uma aplicação que tem usuários, em pedidos de deleção de conta você pode deixar a conta na ‘trashed’ por determinado tempo e depois remover ela efetivamente.

Carregando publicação patrocinada...