我需要在C#/ ASP.NET中生成一个半随机代码,该代码在SQL Server数据库中必须是唯一的。
这些代码每次运行最多需要批量生成100个代码。
鉴于需求,我不确定如何在不生成代码的情况下执行此操作,然后检查数据库是否存在,这似乎是一种可怕的方法。
以下是要求:
CONSTRAINT ucCodes UNIQUE (ColumnCodeText, ColumnCategoryId)
)中必须是唯一的“代码文本” 因此,给定10个字符的限制,GUID不是一个选择。我认为,考虑到不区分大小写的要求,数据库冲突的数学概率相当高。
同时,我相信,有足够多的可能组合,使得数据库中的直接查询表将成为禁止。
是否存在一种合理有效的方式来生成具有这些要求的代码,而又不涉及一次将它们保存到数据库一个代码并等待唯一的密钥冲突以查看其是否通过?
答案 0 :(得分:0)
您在这里有两个选择。