-1
我正在注册过程中收集用户的名字和姓氏。我想使用名字和姓氏生成唯一的注册码,而无需在数据库中检查所有现有的代码。 John Cano可以生成类似JC76AS1
的地方,其中JC
来自John Cano。根据姓名和姓氏生成唯一的注册码
什么可能是最好的方式来生成代码部分76AS1
没有检查数据库的现有代码,并试图不创建一个重复的注册码?
我正在注册过程中收集用户的名字和姓氏。我想使用名字和姓氏生成唯一的注册码,而无需在数据库中检查所有现有的代码。 John Cano可以生成类似JC76AS1
的地方,其中JC
来自John Cano。根据姓名和姓氏生成唯一的注册码
什么可能是最好的方式来生成代码部分76AS1
没有检查数据库的现有代码,并试图不创建一个重复的注册码?
我不确定是否有可能做到这一点,而无需在数据库中检查它或在内存中维护已经生成的注册码的引用。
您可以使用GUID并将其附加到FirstName的第一个字符和姓氏的第一个字符。但它会很长,但独特。
string firstName = "John";
string lastName = "Cano";
string uniqueRegistrationCode = string.Format("{0}{1}-{2}", firstName[0], lastName[0], Guid.NewGuid());
,你还是会回到这样的:
JC-3f507a3c-cd80-482d-b3be-c8002856926e
(这个假设有在第一和最后一个名字至少一个字符)
个人而言,我会使用一个GUID(或者附加一个GUID,如果你确实需要JC部分)。如果您无法检查碰撞,那是获取唯一标识IMO的最安全的方法之一。并且_no_,不要尝试截断GUID以缩短代码长度。 –
如果你可以保留一个柜台,那么很容易。 JC00001,JS00002。 –
是的,但一个计数器可以是一个非常简单的模式来打破 – Devsined