使用基于Java等语言的并发功能,在内存中比如Redis中进行判断。不过针对用户名这种组合式问题,应该还可以辅助一下一些优化算法,比如能不能将某个名带头的用户名可以使用的事前总结一下,新注册用户就如填空题一样只要填可以用的就可以了。
以上只是简单想法。
或者,你可以通过设计一个注册流程。先创建一个registration对象,创建时判断用户名是否重复,如果不重复,则confirm该registration对象,confirm成功后再创建用户账号,创建账号时就不必做唯一性检查了,因为前面检查过了;如果创建registration对象失败,遇到用户名重复,那就认为注册失败了,账号也不会创建,直接提示用户用户名重复就好了。这样的好处是,真正的用户账号表中不会出现注册过程相关的状态,相当于通过设计一个registration对象来显式表达注册过程,registration成功再创建account。
猜你喜欢
本站原创《复杂软件设计之道:领域驱动设计全面解析与实战》