我有一个Sping Boot 应用程序和一个简单的UserService,它由控制器调用。在注册过程中,我想生成唯一的用户名(这是不存在的是数据库)的基础上的名称。例如,如果name是Jim,则username应该是name +随机数(Jim342123)。
基本上这是相同的想法如何Twitter生成用户名。
用户可以输入相同的姓名Jim,在极少数情况下,用户名可以相同(Jim342123)。
UserSerivce
如何避免产生相同的用户名或如何处理,如果相同的用户名将产生?
实现这一目标的最佳方式是什么?
实现generateUsername()方法的最佳方法是什么?
我试过这样的东西,但我不认为这是一个好的解决方案。
Bad Solution
1条答案
按热度按时间zpf6vheq1#
欢迎来到SO!
从建筑学的Angular 来看:一个微服务生成并存储所有使用的用户名在数据库中可能是一个很好的方法。这就是所谓的单一真相来源原则。
但我们需要这个吗?这取决于预期的用户数量。您是否预计有大约5.000.000.000.000.000.000.000.000.000.000.000.000.000个用户?uuid是一个不错的选择。否则,我将采用用户表的大小。如果Jim是第20个用户,则生成的用户名可能是Jim 20。
不需要随机数,对吧?