Executando verificação de segurança...
1
Carregando publicação patrocinada...
5

São poucos os cenários onde um registro realmente precisa ser deletado. Vamos levar os seguintes motivos em consideração.

1- Em bancos SQL, dependendo da tabela você precisa reordenar indices. Dependendo do tamanho da tabela isso pode ser devagar.
2- Você pode querer restituir algo que foi deletado. (Imagina que vc deletou um email no GMAIL e ele te dá 30 dias para restaurar da 'lixeira'). Essa funcionalidade depende de um soft delete
3- Você perder a capacidade de Data analytics em cima dos seus dados. Quer descobrir porque algo está sendo deletado? O que leva um usuário a fazer isso? Precisa do soft delete para isso
4- Impede auditoria. As vezes você precisa do histórico das coisas para fazer auditoria
5- O custo é baixo. Uma coluna com true or false é muito barato de se ter. Mesmo com milhares de registros.
6- ... a lista vai

A menos que por questão de LGPD ou outras legislações, eu sempre trabalharia com soft delete sempre que possível

5

No link abaixo tem um excelente artigo sobre:

https://www.jmix.io/cuba-blog/to-delete-or-to-soft-delete-that-is-the-question!/

Mas dando uma pincelada, bons pontos para optar pelo soft delete:

  • Acompanhamento e auditoria do histórico (por exemplo, por motivos legais)
  • Mantendo a integridade da referência e evitando a exclusão em cascata
  • Você precisa de uma "graceful" delete. Por exemplo, um processo de negócios de longa duração pode precisar de dados que podem ser "excluído", mas ainda necessários para que esse processo específico seja concluído

Temos que entender que o deletar, de forma crua, é algo muito bruto. O soft delete é algo mais gracioso, pois apenas viramos uma chavinha informando que aquele recurso está desativado, porém seu registro ainda presente.