Melhores práticas para a eliminação de dados na conta de usuário rescisão

StackOverflow https://stackoverflow.com/questions/693725

  •  22-08-2019
  •  | 
  •  

Pergunta

Em um site que tem um quinhão de conteúdo, como tópicos do fórum, comentários em blogs, artigos submetidos, mensagens privadas e públicas, perfis de usuário, etc gerado pelo usuário; qual é a melhor prática, tanto quanto o que fazer com os dados gerados pelo usuário se um usuário termina sua conta?

Eu não estou pedindo aconselhamento jurídico e eu não ver isso como uma questão jurídica tanto como uma questão de encontrar um equilíbrio entre o usuário, outros usuários, eo site porque os termos de uso pode ser elaborado depois disso o equilíbrio é atingido. Alguns dos seguintes cenários deve ser considerada quando um usuário exclui sua conta:

  • As mensagens privadas entre usuários - Caso a trilha conversa ser excluída? Se sim, como você explica para casos de assédio, onde legal são necessárias provas?
  • perguntas fórum ou respostas - Se o usuário fez uma pergunta, se o toda rosca ser excluído? Se eles responder a uma pergunta, se a resposta ser excluído?

Eu estou fazendo esta pergunta como eu estou implementando as contas de usuário em um CMS. Eu sei que o Facebook decorreu recentemente em problemas com suas mudanças em seus termos de uso, mas como você equilibra o desejo de apagar com as necessidades e investimentos de outros usuários que também participaram?

Foi útil?

Solução

De um modo geral com bancos de dados que raramente excluir nada. Você pode marcá-lo como excluído, mas em geral você mantê-lo em seu banco de dados, pelo menos por um tempo.

Existem muitas razões para isso. Alguns deles são legais. Você pode ter requisitos ot mantêm os dados por um período determinado. Alguns deles são técnicos. Às vezes é apenas uma salvaguarda. Pode ser necessário restaurar as informações. O usuário poderá solicitar a sua conta for reaberto ou ele pode ter sido bloqueado devido a spam, mas que foi porque a conta tinha sido comprometida e agora foi restaurada.

Os dados antigos podem ser apagados ou arquivados, mas isso pode levar meses ou mesmo anos.

Pessoal eu apenas dar dados relevantes uma coluna de estado (por exemplo, 1 = activas, 0 = suprimido) e, em seguida, basta alterar o estado, em vez de eliminá-lo 99% do tempo.

A integridade dos dados é uma outra questão aqui. Deixe-me dar um exemplo.

Suponha que você tenha duas entidades:

User: id, nick, name, email
Message: id, sender_id, receiver_id, subject, body

Você deseja excluir um determinado usuário. O que você faz sobre as mensagens que você enviou e recebeu? Essas mensagens aparecerão na caixa de entrada de outra pessoa ou itens enviados para que você não pode excluí-los. Você defina o campo relevante na Mensagem para NULL? Isso não faz muito sentido, quer porque essa mensagem veio de (ou ir para) alguém, mesmo que eles não estão mais em atividade.

Você está melhor fora apenas marcando esse usuário como excluído e mantê-los por perto. Faz isso e situações semelhantes muito mais fácil de lidar.

Você também mencionar tópicos do fórum e assim por diante. Você não pode excluir aqueles quer (a menos que haja outras razões para fazê-lo como spam ou abuso), porque eles são o conteúdo que está relacionado a outros conteúdos (por exemplo, mensagens do fórum que foram respondeu a).

Os únicos dados que você pode com segurança e razoavelmente excluir-se de dados de crianças. Esta é realmente a diferença entre agregação e composição. A relação de usuário e mensagem acima é agregação. Um exemplo de composição é House e quarto. Você excluir uma casa e todos os quartos ir. Os quartos não pode existir sem uma casa. Esta é a composição ou, em termos de relacionamento entidade, uma relação pai-filho.

Mas você vai encontrar mais instâncias de agregação de composição (na minha experiência) de modo a pergunta é: o que fazer com esses dados? É realmente difícil de apagar todos os vestígios de alguém sem apagar as coisas que você não deve. Apenas marcá-los como excluído, bloqueado ou inativo e lidar com ele dessa forma.

Outras dicas

Você poderia simplesmente marcar o usuário como excluído e, em seguida, sempre que exibir qualquer conteúdo que envolve o usuário, em seguida, exibir o nome como "Ex-User" ou algo assim.

Isso protege a identidade usuários partiu sem destruir o seu conteúdo.

Você deve manter todo o conteúdo e usuário só marca como eliminado para que outros usuários não serão capazes de ver o seu perfil, nome de usuário, etc. Em seguida, outro usuário deve ser capaz de registrar com o mesmo nome (já que deve tornar-se livre).

Eu estive pensando sobre essas mesmas questões por algum tempo. Honestamente você não deve excluir uma linha começada por um usuário-a-ser-excluídos se as outras pessoas contribuíram seu tempo e esforços para isso. Lembro-me de um fórum havia uma regra que você não pode excluir seu segmento após um tanto 11 horas depois de ter sido publicado. Eu acho que a idéia por trás é que você não pode levar sua palavra de volta depois de ter pronunciado lo.

Assim, mais em conta bloqueio, mas fazer qualquer coisa não cascata de exclusão em relação ao usuário.

Especialmente, para que eles possam excluir sua conta, em seguida, registrar sob o mesmo nome e começar tudo de novo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top