Eu criei um sistema que esperamos ter muitos usuários. Tememos que nosso banco de dados atenda a usuários do lixo que usam nomes de usuário de alta demanda, ou talvez eles apenas se registrem e nunca mais voltem.
Sei que isso é comum, eu mesmo faço isso, pois tenho 3 contas do Google, mas uso apenas 1. Como um site grande pode gerenciar usuários do lixo ou nunca mais voltar usuários como esse?
scalability
users
yozawiratama
fonte
fonte
Respostas:
Alguns serviços removem contas que não viram nenhuma atividade em um determinado período de tempo, por exemplo, um ano.
Outros não se incomodam, alegando que manter um registro de usuário em seu sistema é uma quantidade trivial de dados e, quem sabe, eles podem voltar.
Obviamente, se você acompanhar o que os usuários realmente fazem com seu serviço, removê-los é um pouco complicado. Você precisará remover tudo o que eles contribuíram ou encontrar uma maneira de desvincular tudo isso da conta (o que pode não ser uma boa coisa a ser feita por vários motivos, atribuição, aborrecimentos legais etc.) .
E se os usuários realmente precisaram pagar pelo conteúdo acessível por meio dessa conta inativa, remover a conta não é uma coisa boa, pois agora você está privando as pessoas daquilo em que realmente gastaram um bom dinheiro (a Linden Lab teve que mudar sua política em relação aos usuários do Second Life por causa disso, eles costumavam remover contas inativas após um período, mas precisavam parar de fazê-lo quando as pessoas reclamavam que estavam sendo privadas de seu investimento e, com razão, quando algumas pessoas retornavam após ausências prolongadas devido a, por exemplo, colocação temporária no exterior (expats, militares, etc. etc.).
O melhor que você provavelmente pode fazer é não se incomodar. O segundo melhor seria remover apenas as contas que não só não viram atividade por um longo tempo, mas também não contribuíram com nada e não têm nada vinculado a elas.
fonte
Estranhamente, o Facebook ou o Google têm tantos usuários que isso não é um problema para eles.
Quem escolheu um nome de usuário realmente desejável (por exemplo, "Frank") provavelmente já o fez em 2008. Os muitos e muitos usuários que agora vêm e querem experimentá-lo, nunca mais voltarão, provavelmente terão que se contentar com "Frank32183" , e depois que você aceitar isso, não há nenhuma razão específica para não aceitar "Frank32184" também (nem todos podem ter a mesma sorte de ter um nome único, como eu!).
Outro fator é que, notoriamente, as empresas de big data nunca removem dados do usuário, a menos que a opinião pública e um tribunal realmente lhes digam com urgência, porque seus dados são o modelo de negócios. Ser capaz de dizer "temos 3.000.000.000 de usuários" é mais importante do que garantir que todos sejam usuários ativos, pois atrai mais usuários novos, brinca melhor com clientes de publicidade etc. Manter os usuários felizes é importante para a empresa, mas não exatamente como importante como mantê- los em primeiro lugar.
Em uma rede menor e mais familiar, os trade-offs podem ser diferentes. De fato, remover seus dados sem deixar rastro pode ser um ponto de venda exclusivo e valioso de uma plataforma online exclusiva. Mas as grandes empresas que pretendem ter todos no planeta como clientes simplesmente não operam nesse espaço.
fonte
Separe as credenciais de login dos nomes para exibição
Permita que os usuários efetuem login com seu endereço de e-mail ou conta existente em um site que fornece esse serviço (por exemplo, Google ou Facebook). Se você realmente deseja que os usuários criem um novo nome de usuário, isso também funciona.
Antes de interagir mais com o sistema (ou como parte do registro), peça aos usuários que escolham um nome para exibição. Como esse nome é separado das credenciais de login, você pode recuperá-lo se o usuário ficar inativo e, ao retornar, poderá fazê-lo selecionar um novo nome. Como bônus, você pode permitir que os usuários alterem seu nome de exibição à vontade.
Isso não funciona tão bem (mas não é tão ruim assim) para sistemas em que você está salvando discussões de longo prazo entre muitos usuários - pode ser difícil analisar uma conversa entre vários usuários alguns meses ou anos depois, quando dois deles ficaram inativos e perderam seus nomes para exibição (substituídos por
inactive user #123
e#186
respectivamente), mas ainda se referiram aos nomes antigos em texto. Também pode levar os usuários a se passarem, embora existam muitas estratégias para combater isso.Esta não é uma ideia muito nova. O Stack Overflow faz a separação (embora eu ache que os nomes nunca sejam recuperados ou até únicos), vários jogos online também implementam o aspecto de recuperação.
fonte
Este é mais um problema de UX, e não um problema de programação.
Mas a solução é simples: não use o nome de usuário do usuário como nome de exibição. Basicamente, todos os principais serviços usam esse método: Stack Exchange, Google, Youtube, Steam, tudo.
Isso vem com duas vantagens principais:
1) Os usuários podem escolher o nome que quiserem, mesmo que já esteja em uso. Usuários duplicados geralmente não causam confusão, pois normalmente possuem avatares ou IDs.
2) segurança. Você não está dizendo seu nome de usuário ao mundo, implorando para que as pessoas façam força bruta em sua conta.
fonte
Quando uma conta fica inativa por um longo período, envie um e-mail notificando-a de que sua conta será desativada em alguns meses. Na desativação, limpe o nome do usuário e envie um link de redefinição por email.
Na próxima vez que o usuário desejar fazer login, escolha um novo nome. Ele precisa usar o link de redefinição para escolher um novo nome.
Dessa forma, todos os usuários podem manter seus dados, mas os nomes inativos são disponibilizados eventualmente.
fonte