提前为问题标题道歉,我想不出更好的方式来表达它。
在某些电子邮件系统(比如Yahoo)中,如果您想要一个名称,系统会在最后添加一个数字来建议名称(例如,如果 CloudStrife 被采用,那么你获取 CloudStrife01 )。
在实现这样的系统时,如何检测有多少重复名称(如果有 CloudStrife , CloudStrife01 和 CloudStrife02 ,应该有3个 CloudStrife 实例。除了存储重复数量之外,还有哪些其他解决方案?
答案 0 :(得分:2)
副本的数量无论如何都无济于事,想象一下会有CloudStrife,你建议用户使用CloudStrife01,但他选择了CloudStrife02。所以你有两个CloudStrifes但仍然没有CloudStrife02。您应该始终检查数据库。可能如果取名,请选择与任何后缀相同的名称,然后选择并建议不在该集合中的名称。
答案 1 :(得分:1)
我会使用模式匹配选择所有用户名。
SELECT username FROM users WHERE username LIKE 'CloudStrife%'
现在我们获得所有以CloudStrife开头的用户名,因此我们不必再进行另一个数据库查询,只是为了检查我们要推荐的名称是否被采用。
答案 2 :(得分:0)
创建2或3个标准,例如在结尾追加出生日期,最后添加姓氏,更改姓名和建议之前的顺序(如果已存在)
答案 3 :(得分:0)
如果用户名不可用:
从所选用户名的末尾删除任何数字。将整数初始化为1,然后将此整数连接到用户名存根的末尾。
如果还使用此用户名,请递增整数并重复连接/检查过程。