需求
针对每一个用户(用户量在 10w 以下)随机生成的邀请码(仅限六位数字),且不重复
思考
如果能把这个不重复条件去除,那么只需要使用Math.random
然后取小数点后六位就行了,但可惜要求就是不能重复, 要是重复还得了,到时候注册的时候都不知道奖励给那个邀请码账号。同时还要求邀请码在六位且数字,这就导致即使随机生成的,会有一定的可能出现相同的邀请码。
解决方案
方案 1
先随机生成一个六位随机数字,然后在存的时候判断数据库是否存在该邀请码,如果存在那么就重新生成一个,直到该邀请码不存在,便存入。
优点:方便,如果用户量不大,完全可以缺点:用户量上来的情况下,判断邀请码是否存在有可能需要一段时间,并且由于需要判断,故性能欠缺