A empresa para a qual trabalho oferece software para pessoas em determinados setores regulamentados, de modo que geralmente tenho a atitude "nunca excluir qualquer " porque, se você excluir qualquer coisa, perderá a integridade da sua trilha de auditoria. Em vez disso, marque as informações como excluídas (ou mova-as para uma versão de archive das tabelas) e registre quem as "excluiu" e quando.
As únicas razões para realmente apagar coisas são
- se você estiver com pouco espaço (mas o disco é barato atualmente)
- para eficiência (mas se a sua estrutura de dados estiver bem indexada e não estiver muito fragmentada, isso fará pouca diferença)
- por motivos legais (se você for solicitado a remover os detalhes de alguém que provavelmente terá de cumprir, dependendo das leis locais de proteção de dados ou se o próprio conteúdo violar alguma lei)
Seus usuários podem estar agradecidos por nada ser realmente excluído, se eles acidentalmente excluírem algo útil e você puder recuperá-lo. E se um usuário aborrecido que forneceu anteriormente informações valiosas para o site lançar um chiado e excluir todos os seus posts em vingança, você pode retirar as exclusões facilmente.
Um ponto extra muito importante: você deve deixar claro em seus termos de serviço que as informações podem não ser realmente excluídas quando o usuário não pode mais vê-las e fornecer uma rota (se apenas "email x @ xx e pergunte para que seja feito ") para que eles realmente apaguem os dados, eles têm o direito sob as leis relevantes de pedir para serem excluídos.