What do you mean with "do something bad and then change their name"? If you're implying that users can post content, for instance, with their name attached, and then change their name and the name attached to their posts won't change as well, then I think you need to reconsider your (database) architecture and ensure that a username is a single point of reference and all representations of that username change when someone changes their username.
Edit: OK, sorry for misunderstanding. But if it's the case that you have a single point of reference, then changing your username is irrelevant to the problem. Let's say my username is Foo and I troll some thread somewhere, then change my name to Bar. As long as people can see what I've posted (eg. a post history page), then it doesn't matter whether I used to be called Foo or not, Bar is associated now with posts made before that were troll material. So perhaps you just need to create transparency, by making something like a post history overview on users' profiles? :)
如果冒充某人或“作弊”的问题是一个因素,您可以随时使用 ALA eBay,并在过去 30 天内更改用户名的人旁边显示一个图标。
根据情况,您可以保留历史记录并在需要时显示它。
如果您这样做,请确保新用户不会重复使用以前的用户名。
If the issue of impersonating someone or "cheating" is a factor you could always do ALA eBay and display an icon next to someone who changed their username in the past 30 days.
Depending on the case you can keep an history and display it if required.
If you do that make sure that previous usernames are not recycled for new users.
There are often very good reasons why people would want to legitimately change their username.
For example, assumed someone signed up as pimpleOnGodsAss while at university and then, a few years later, is in the workforce and wants to network with other professionals through the site ... they're going to want to change!
Also, consider the very common case of people changing their names when they marry - if they used their family name as a part of their username, they'll want to change that too. Martha Jones with username marthajones marries John Smith and wants username marthasmith (if available).
Note too that you can't avoid people achieving this - they can always reregister with a new email address, discarding their old history, and getting the new username they want.
I'd suggest that the benefits of the feature outweigh the costs - people will always find a way to game the system, don't penalise good users by locking away features just because some will find a way to abuse them.
I like Steam's "View aliases" function, which lets you see all names that you've seen that user using. As long as the username itself isn't the primary key in the user table, then sure, let them change names. Add an alias table so if someone's being a dick, you can see who they used to be.
I wouldn't let the user change their actual username.
However, changing the display name should be safe. You can always track their behavior via their account or username directly. If they're doing something bad, you should flag their account, not necessarily try to track it by their name.
It's convenient and, as you said it, gives user flexibility. If only changing one's username is enough to hide, there may be another issue.
Keep track of those users another way (user ID, logs, reputation system, ...) and consider showing the original username to your admins/moderators maybe.
I agree with most of the people answering here - let the users change their name, otherwise the site is simply less friendly. As Rahul said, if a user changes their name, make sure that the new name is associated with all their prior activity.
Similarly - If you use email address as your username (as many sites do), let the user change their email address. I can tell from personal experience that not allowing this is a real pain (for users and customer support for whatever site isn't allowing it).
Your database structure shouldn't depend on the username(/email address) being the same, so why enforce that on your users?
As a user, I must say that I absolutely want to be able to change the user name on my account. I wouldn't go as far as asking for multiple aliases, but it is always possible that someone changed his mind, or did not really think much when first setting up the account. You should not be using the user name as the primary internal account ID.
I'd allow the change, and perhaps carry both a user (login) name and a display name, and I'd allow a change to both. There are various arguments on both sides, but for me it usually comes down to the fact that either/both of those elements (user & display) typically reflect something about their owner's name, and their owner's name can change.
If your login is an email address, and you change email providers, now what? Or take your name 'Donny V.' I assume you're male, but what if you were female*? And if you got married to Mike Peterson. Wouldn't you now want to be known as "Donny P."? Maybe, maybe not. But many would.
How about a "formerly known as" display. If a user decides to change the user name, just store the old name in a table and display it additionally. Maybe give the option in all the user profiles to disable this display.
I vote for yes, within reason. Users who have got into trouble (negative total rep, moderation, past warnings, whatever is applicable to your site) should not be allowed.
Other users should be allowed but with a limit (e.g. 3 times a year). There should be a way to keep track of the users past usernames, at the very least for the admins/moderators.
EDIT: However I find systems such as Steam/Wordpress where a user has a display name and login name seperate a little confusing, so I would not reccomend such an approach, however that is just personal feeling.
You could always control how often users are allowed to change their username to avoid seeing same people in forums who change their name every day; cause someone will do it every day if they are allowed to.
Why are you offering this feature instead of spending the time on another feature? Would another feature offer better benefit (such as a status line?)
What will this accomplish?
Are users asking for this?
Will this feature result increased stickiness or better experience?
Is this a competitive advantage?
Does your site become more confusing?
Technical questions
What is the potential for misuse? Do you have a denormalized database where the username has been copied many places or is there only one place where the username is stored?
Do you have a way to stream a notification to other users "Your friend 'foo' is now 'bar'?"
Like most things in life, it comes down to the context of which you speak of. Personally, I find any service that could or gets abused should have persistent usernames.
Every user has a unique internal ID, a number. So you are free to implement this feature any time you want. No need to code it right away, as you can delay this decision.
In case you want to implement it: Let them only change the username every 6 months and indicate every new username by some symbol for 30 days. Show the username history in the profile and be sure to inform the user about this, so he can decide against changing the username.
发布评论
评论(23)
“做坏事然后改名”是什么意思? 如果您暗示用户可以发布内容,例如,附加他们的名字,然后更改他们的名字,并且附加到他们的帖子的名称也不会改变,那么我认为你需要重新考虑你的(数据库)架构并确保用户名是单一参考点,并且当有人更改用户名时,该用户名的所有表示都会发生变化。
编辑:
好的,抱歉造成误解。 但如果您只有一个参考点,那么更改用户名与问题无关。 假设我的用户名是 Foo,我在某处拖拽一些线程,然后将我的名字更改为 Bar。 只要人们可以看到我发布的内容(例如,帖子历史记录页面),那么我以前是否被称为 Foo 并不重要,Bar 现在与之前发布的属于巨魔材料的帖子相关联。 因此,也许您只需要通过在用户个人资料上制作类似帖子历史记录之类的内容来创建透明度? :)
What do you mean with "do something bad and then change their name"? If you're implying that users can post content, for instance, with their name attached, and then change their name and the name attached to their posts won't change as well, then I think you need to reconsider your (database) architecture and ensure that a username is a single point of reference and all representations of that username change when someone changes their username.
Edit:
OK, sorry for misunderstanding. But if it's the case that you have a single point of reference, then changing your username is irrelevant to the problem. Let's say my username is Foo and I troll some thread somewhere, then change my name to Bar. As long as people can see what I've posted (eg. a post history page), then it doesn't matter whether I used to be called Foo or not, Bar is associated now with posts made before that were troll material. So perhaps you just need to create transparency, by making something like a post history overview on users' profiles? :)
如果冒充某人或“作弊”的问题是一个因素,您可以随时使用 ALA eBay,并在过去 30 天内更改用户名的人旁边显示一个图标。
根据情况,您可以保留历史记录并在需要时显示它。
如果您这样做,请确保新用户不会重复使用以前的用户名。
If the issue of impersonating someone or "cheating" is a factor you could always do ALA eBay and display an icon next to someone who changed their username in the past 30 days.
Depending on the case you can keep an history and display it if required.
If you do that make sure that previous usernames are not recycled for new users.
人们通常有很好的理由想要合法地更改他们的用户名。
例如,假设有人在大学期间注册为
pimpleOnGodsAss
,几年后,他加入了劳动力队伍,并希望通过该网站与其他专业人士建立联系……他们会想要改变!另外,考虑一下人们在结婚时更改姓名的常见情况 - 如果他们使用姓氏作为用户名的一部分,他们也会想更改它。 玛莎·琼斯(Martha Jones)的用户名是 marthajones,与约翰·史密斯 (John Smith) 结婚,并且想要用户名 marthasmith(如果有)。
另请注意,您无法避免人们实现这一目标 - 他们始终可以使用新的电子邮件地址重新注册,放弃旧的历史记录,并获得他们想要的新用户名。
我认为该功能的好处大于成本 - 人们总是会找到一种方法来玩弄系统,不要仅仅因为某些人会找到一种滥用功能的方法而通过锁定功能来惩罚优秀用户。 /em>
There are often very good reasons why people would want to legitimately change their username.
For example, assumed someone signed up as
pimpleOnGodsAss
while at university and then, a few years later, is in the workforce and wants to network with other professionals through the site ... they're going to want to change!Also, consider the very common case of people changing their names when they marry - if they used their family name as a part of their username, they'll want to change that too. Martha Jones with username marthajones marries John Smith and wants username marthasmith (if available).
Note too that you can't avoid people achieving this - they can always reregister with a new email address, discarding their old history, and getting the new username they want.
I'd suggest that the benefits of the feature outweigh the costs - people will always find a way to game the system, don't penalise good users by locking away features just because some will find a way to abuse them.
您可以暂时显示这两个名称:
You could display both names for a while :
我喜欢 Steam 的“查看别名”功能,它可以让您查看该用户使用过的所有名称。 只要用户名本身不是用户表中的主键,那么当然可以让他们更改名称。 添加别名表,这样如果某人是混蛋,您就可以看到他们曾经是谁。
I like Steam's "View aliases" function, which lets you see all names that you've seen that user using. As long as the username itself isn't the primary key in the user table, then sure, let them change names. Add an alias table so if someone's being a dick, you can see who they used to be.
我不会让用户更改他们的实际用户名。
但是,更改显示名称应该是安全的。 您始终可以直接通过他们的帐户或用户名跟踪他们的行为。 如果他们做了坏事,您应该标记他们的帐户,而不一定要尝试通过他们的名字来跟踪它。
大多数网站都有这个概念(包括SO)。
I wouldn't let the user change their actual username.
However, changing the display name should be safe. You can always track their behavior via their account or username directly. If they're doing something bad, you should flag their account, not necessarily try to track it by their name.
Most sites have this concept (including SO).
如果每个用户都有一个恒定的唯一 ID 号,他们可以更改用户名,但用户名仍然相同。
If each user has a constant unique id number, they can change the username but are still the same.
Arstechnica.com 更改用户名的费用为 20 美元,订阅者可以免费更改一次。
Arstechnica.com charges $20 to change your username, and subscribers get one change for free.
我希望在更多网站上看到这一功能。
正如您所说,它很方便,并且为用户提供了灵活性。 如果仅更改用户名就足以隐藏,则可能存在另一个问题。
以另一种方式跟踪这些用户(用户 ID、日志、信誉系统等),并考虑向您的管理员/版主显示原始用户名。
It's a feature I'd like to see on more websites.
It's convenient and, as you said it, gives user flexibility. If only changing one's username is enough to hide, there may be another issue.
Keep track of those users another way (user ID, logs, reputation system, ...) and consider showing the original username to your admins/moderators maybe.
我同意大多数人在这里回答的观点——让用户更改他们的名字,否则该网站就不太友好。 正如拉胡尔所说,如果用户更改了姓名,请确保新名称与其之前的所有活动相关联。
同样 - 如果您使用电子邮件地址作为用户名(正如许多网站所做的那样),请让用户更改他们的电子邮件地址。 我可以从个人经验中看出,不允许这样做是一个真正的痛苦(对于任何不允许它的网站的用户和客户支持)。
您的数据库结构不应该依赖于相同的用户名(/电子邮件地址),那么为什么要对您的用户强制执行呢?
I agree with most of the people answering here - let the users change their name, otherwise the site is simply less friendly. As Rahul said, if a user changes their name, make sure that the new name is associated with all their prior activity.
Similarly - If you use email address as your username (as many sites do), let the user change their email address. I can tell from personal experience that not allowing this is a real pain (for users and customer support for whatever site isn't allowing it).
Your database structure shouldn't depend on the username(/email address) being the same, so why enforce that on your users?
如果您有该功能,请保留它。 您只是鼓励某人创建另一个帐户,并使用用户名 goodwitch 和 badwitch。
如果你没有,就不要添加它,除非你没有更好的东西可以添加。
If you have the feature, leave it. You would just be encouraging someone to create another account to have the user names goodwitch and badwitch.
If you don't have it, don't add it unless you have nothing better to add.
就我个人而言,我尝试让用户名具有粘性,并使其成为网站体验的宝贵组成部分。
如果其他用户会看到用户名,则情况如此; 该网站是否涉及任何社交网络。
如果您的网站存在很长时间,您始终可以归档非常旧的网站。
Personally, i try to make usernames sticky, and a valuable part of the experience of a site.
This is true if other users will see the user names; if there is any social networking involved with the site.
You can always archive really old ones if your site lives for a long time.
作为用户,我必须说我绝对希望能够更改我帐户上的用户名。 我不会要求提供多个别名,但总有可能有人改变了主意,或者在第一次设置帐户时并没有真正考虑太多。
您不应使用用户名作为主要内部帐户 ID。
As a user, I must say that I absolutely want to be able to change the user name on my account. I wouldn't go as far as asking for multiple aliases, but it is always possible that someone changed his mind, or did not really think much when first setting up the account.
You should not be using the user name as the primary internal account ID.
是 - 仅当用户不与其他用户交互时。
不 - 如果用户可以交互:论坛和类似的东西。 每天看到一个不同名字的用户有点令人困惑。
Yes - ONLY IF users don't interact with another users.
NO - if users can interact: forums and stuff like that. It's kinda confusing to see an user with a different name every day.
我允许更改,并且可能同时携带用户(登录)名和显示名称,并且我允许对两者进行更改。 双方都有各种争论,但对我来说,这通常归结为这样一个事实:这些元素(用户和显示)中的一个/两个通常反映了有关其所有者名称的某些内容,并且其所有者的名称可以更改。
如果您的登录名是电子邮件地址,并且您更改了电子邮件提供商,现在该怎么办? 或者将你的名字命名为“Donny V”。 我假设您是男性,但如果您是女性*怎么办? 如果你嫁给了迈克·彼得森。 您现在不想被称为“Donny P.”吗? 也许,也许不是。 但很多人会。
*是的,我知道男人也可以改变姓氏。
I'd allow the change, and perhaps carry both a user (login) name and a display name, and I'd allow a change to both. There are various arguments on both sides, but for me it usually comes down to the fact that either/both of those elements (user & display) typically reflect something about their owner's name, and their owner's name can change.
If your login is an email address, and you change email providers, now what? Or take your name 'Donny V.' I assume you're male, but what if you were female*? And if you got married to Mike Peterson. Wouldn't you now want to be known as "Donny P."? Maybe, maybe not. But many would.
*Yes, I know men can change their last names too.
“以前称为”显示器怎么样? 如果用户决定更改用户名,只需将旧名称存储在表中并另外显示即可。 也许在所有用户配置文件中提供禁用此显示的选项。
How about a "formerly known as" display. If a user decides to change the user name, just store the old name in a table and display it additionally. Maybe give the option in all the user profiles to disable this display.
我投赞成票,这是合理的。 不应允许遇到麻烦的用户(负总代表、审核、过去的警告、任何适用于您的网站的内容)。
应允许其他用户但有限制(例如每年 3 次)。 应该有一种方法来跟踪用户过去的用户名,至少对于管理员/版主来说是这样。
编辑:但是我发现像 Steam/Wordpress 这样的系统,其中用户的显示名称和登录名称有点令人困惑,所以我不会推荐这种方法,但这只是个人感觉。
I vote for yes, within reason. Users who have got into trouble (negative total rep, moderation, past warnings, whatever is applicable to your site) should not be allowed.
Other users should be allowed but with a limit (e.g. 3 times a year). There should be a way to keep track of the users past usernames, at the very least for the admins/moderators.
EDIT: However I find systems such as Steam/Wordpress where a user has a display name and login name seperate a little confusing, so I would not reccomend such an approach, however that is just personal feeling.
如果您主要担心的是滥用行为,也许您应该提供一种报告滥用行为的方法,并维护用户名更改的日志。
If you're main concern is related to abuse, perhaps you should provide a method of reporting abuse, and maintain a log of when usernames change.
您始终可以控制允许用户更改用户名的频率,以避免在论坛中看到每天更改名称的同一个人; 因为如果允许的话,有人每天都会这样做。
You could always control how often users are allowed to change their username to avoid seeing same people in forums who change their name every day; cause someone will do it every day if they are allowed to.
业务问题优先
为什么要提供此功能而不是花时间开发其他功能? 另一个功能会提供更好的好处(例如状态行吗?)
这会实现什么目的?
用户有这样的要求吗?
此功能会增加粘性或带来更好的体验吗?
这是一种竞争优势吗?
您的网站是否变得更加混乱?
技术问题
滥用的可能性有多大? 您是否有一个非规范化数据库,其中用户名已被复制到许多位置,或者只有一个位置存储用户名?
您是否有办法向其他用户发送通知“您的朋友‘foo’现在是‘bar’?”
Business questions first
Why are you offering this feature instead of spending the time on another feature? Would another feature offer better benefit (such as a status line?)
What will this accomplish?
Are users asking for this?
Will this feature result increased stickiness or better experience?
Is this a competitive advantage?
Does your site become more confusing?
Technical questions
What is the potential for misuse? Do you have a denormalized database where the username has been copied many places or is there only one place where the username is stored?
Do you have a way to stream a notification to other users "Your friend 'foo' is now 'bar'?"
就像生活中的大多数事情一样,这取决于你所说的背景。 就我个人而言,我发现任何可能或被滥用的服务都应该有持久的用户名。
Like most things in life, it comes down to the context of which you speak of. Personally, I find any service that could or gets abused should have persistent usernames.
假设可以让用户更改他们的名字,但是这个更改也应该触及他以前的帖子 - 他们应该用新的用户名显示
......
我已经提醒我在互联网资源中找到的一些密码已实现
password_hash = md5(密码+盐+用户名)
如果您有相同的模型那么您应该拒绝更改用户名
问候,Pavel
Suppose it is ok to let user change their names, but this change should also touch his previous posts - they should be shown with new user name
...
I have reminded about some password has realization that I found in internet resource
password_hash = md5(password + salt + user_name)
if you have the same model then you should reject chaning user name
Regards, Pavel
结合这里的一些想法:
每个用户都有一个唯一的内部ID,一个数字。 因此您可以随时实现此功能。 无需立即编码,因为您可以推迟此决定。
如果您想实施:让他们每 6 个月更改一次用户名,并在 30 天内用某种符号指示每个新用户名。 在个人资料中显示用户名历史记录,并确保告知用户这一点,以便他可以决定不更改用户名。
Combining some of the ideas here:
Every user has a unique internal ID, a number. So you are free to implement this feature any time you want. No need to code it right away, as you can delay this decision.
In case you want to implement it: Let them only change the username every 6 months and indicate every new username by some symbol for 30 days. Show the username history in the profile and be sure to inform the user about this, so he can decide against changing the username.