Soft Delete ou Delete
Estou em dúvida entre utilizar o soft delete ou realmente deletar o registro
Estou em dúvida entre utilizar o soft delete ou realmente deletar o registro
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
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:
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.