如何管理垃圾桶用户?


22

我创建了一个系统,希望它将有很多用户。我们担心我们的数据库将堆满使用高要求用户名的垃圾用户,或者他们只是注册而永不回来。

我知道这很常见,我自己做,因为我有3个Google帐户,但我只使用1。一个大型网站如何管理垃圾用户或永远不会像这样回来?


11
我认为这个问题需要澄清。什么是“垃圾用户”?您是说帐户无效还是什么意思?您确定这个问题确实与软件开发有关吗?

哦,对不起,这可能是我接受教育的习惯,我每个人都说每个未使用的数据都是垃圾,垃圾用户就像一些用户数据再也没有使用过并且变得多余
yozawiratama

6
因此,您担心新用户一旦发现使用FrankIsAwesome便不会注册您的网站?这不应该让您彻夜难眠。让我彻夜难眠的是,我以为FrankIsAwesome可能会活跃一年,不活跃2年,将其帐户删除并由另一个用户注册,该用户现在可以伪装成原始FrankIsAwesome。您可以尝试使用StackOverflow方法并将所有内容链接到ID,并允许用户每30天(我相信)将其名称更改为可用的名称。
MonkeyZeus

3
@MonkeyZeus我很确定StackOverflow名称不必唯一...
Michael

2
@MonkeyZeus唯一的StackExchnage是每个站点的ID号-查看用户个人资料页面的地址。用户名不用作键(我的用户名不是唯一的,并且我与另一个Mark有多个注释链)
user151019 2015年

Answers:


20

某些服务会删除在一定时间内(例如一年)未见任何活动的帐户。

其他人不会打扰,因为在系统中保留用户记录是微不足道的数据量,而且谁知道,他们可能会回来。

当然,如果您要跟踪用户对您的服务实际执行的操作,则将其去除是非常棘手的。您要么必须删除他们所贡献的所有内容,要么找到某种方法将其与他们的帐户中的所有内容脱钩(由于种种原因,出处,法律麻烦等原因,这样做可能不是一件好事。) 。

而且,如果用户实际上必须为可通过该无效帐户访问的内容付费,那么删除该帐户根本不是一件好事,因为您现在正在剥夺人们实际上在其上花了很多钱的东西(林登实验室必须更改其政策因此,对于Second Life用户,他们曾经在一段时间后删除不活跃的帐户,但是当人们抱怨自己的投资被剥夺时,他们不得不停止这样做,而正确的是,当某些人由于长期缺勤而返回时,例如临时安置在国外(外国人,军事人员等)。

您可能要做的最好的事情就是不要打扰。第二个最好的办法是只删除那些不仅长时间没有任何活动而且没有任何贡献而且与它们没有任何关联的帐户。


是的,我想跟踪用户的实际操作,我只是不想删除用户,谢谢您的建议
yozawiratama

哦,是的,如果我为“可能使用的垃圾数据”创建服务器或数据库,那么实际上在我删除时,它将转移到该数据库或服务器。这样我就可以向其他用户开放该用户,并且也可以记录该垃圾数据。我认为在这个时代,所有数据都可能很重要。只是我的新手
意向书

为“您可能要做的最好的事情就是不要打扰”而+1。我见过没有打扰的网站。这样做的理由是,他们不必与消失了几年的用户打交道,然后突然再来一时兴起,并在登录信息不再起作用时感到恼火。不用理会用户名,您将为自己和用户省去一些麻烦。(此外,StackOverflow似乎不需要唯一的用户名即可正常工作。)
Kyralessa

18

奇怪的是,Facebook或Google拥有如此众多的用户,因此这对他们来说并不是什么大问题。

谁选择了一个非常理想的用户名(例如“ Frank”),早在2008年就已经这样做了。现在,许多想来尝试使用它但再也不会回来的用户可能必须对“ Frank32183”感到满意。 ,一旦您接受了,就没有特别的理由为什么您也不会同样接受“ Frank32184”(并不是每个人都能像我一样幸运地拥有一个独特的名字!)。

另一个因素是,著名的是,大数据公司永远不会删除用户数据,除非舆论和法院/法律真的,真的紧急告诉他们,因为他们的用户数据是他们的业务模型。能够说:“我们有30亿个用户”是不是确保它们都是活的用户更重要,因为它吸引了更多的新用户,广告客户等提升用户满意度是重要的公司,而不是更好地发挥相当它们放在第一位很重要。

在更小,更熟悉的网络中,权衡可能会有所不同。的确,实际上删除数据毫无痕迹可能是专有在线平台的宝贵独特卖点。但是,真正的大公司旨在使地球上的每个人都成为他们的客户,根本不在那个领域开展业务。


4
“法院/法律确实非常迫切地告诉他们这样做”,即使这样,他们经常还是不这样做,只是使最终用户无法访问数据,同时保留数据供自己使用...
jwenting

8

将登录凭据与显示名称分开

允许用户从提供此类服务的站点(例如Google或Facebook)使用其电子邮件地址或现有帐户登录。如果您真的想让用户提出一个新的用户名,那也可以。

然后,在与系统进一步交互之前(或作为注册的一部分),要求用户选择显示名称。由于此名称与登录凭据是分开的,因此,如果用户不活动并且可以在返回时可以选择一个新名称,则可以自由地使用它。另外,您可以让用户随意更改其显示名称。

对于您要保存许多用户之间的长期讨论的系统,这不是很好(但不是真的很糟糕)-几个月或几年后,当几个用户之间的对话难以解析时,他们中的两个已停用,并失去了显示名称(分别用inactive user #123和代替#186),但仍在文本中引用了其旧名称。尽管有许多解决方法,它也可能导致用户互相模仿。

这不是一个很新颖的想法。Stack Overflow进行了分隔(尽管我认为名字从未被回收,甚至没有唯一性),一些在线游戏也实现了回收方面。


查看Stack Overflow上有多少个用户被命名为“ Matt”。然后注意,其中有9个代表超过1
万名

@ durron597有趣的是,还有2000多个Alex,但其中只有9个的rep超过1万
马克·赫德

@MarkHurd大声笑,但是没有主持人Alex,这就是为什么我首先注意到该特定统计信息的原因。
durron597

1

这更多是UX问题,而不是编程问题。

但是解决方案很简单:不要使用用户的用户名作为显示名称。基本上,每个主要服务都使用这种方法:Stack Exchange,Google,Youtube,Steam等。

这具有两个主要优点:

1)即使名称已经被使用,用户也可以选择他们想要的任何名称。用户重复通常不会引起任何混淆,因为用户通常具有化身或ID。

2)安全性。您不是在向世界透露用户名,而是在要求人们对您的帐户进行暴力破解。


2
这似乎只是重复先前的回答中所提出和解释的观点:“从显示名称中分离登录凭据...”
t

0

如果帐户长时间不活动,请向他们发送电子邮件,通知他们几个月后将停用其帐户。停用后,清除用户名并通过电子邮件发送重置链接。

用户下次要登录时,请选择一个新名称。他需要使用重置链接来选择新名称。

这样,所有用户都可以保留其数据,但最终可以使用空闲名称。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.