C# 生成独特的&;SQL Server和.NET中的Randon代码
我需要在C#/ASP.NET中生成一个在SQL Server数据库中必须是唯一的半随机代码 这些代码需要批量生成,每次运行最多生成100个代码 考虑到这些需求,我不确定如何在不生成代码然后检查数据库是否存在的情况下做到这一点,这似乎是一种可怕的做法 以下是要求:C# 生成独特的&;SQL Server和.NET中的Randon代码,c#,sql-server,C#,Sql Server,我需要在C#/ASP.NET中生成一个在SQL Server数据库中必须是唯一的半随机代码 这些代码需要批量生成,每次运行最多生成100个代码 考虑到这些需求,我不确定如何在不生成代码然后检查数据库是否存在的情况下做到这一点,这似乎是一种可怕的做法 以下是要求: 最多10个字符(仅字母数字) 不能区分大小写 用户可以为代码指定可选的3个字符前缀 不得违反数据库中的2列唯一约束,即必须是“类别”中唯一的“代码文本”(constraint ucCodes unique(ColumnCodeText
- 最多10个字符(仅字母数字)
- 不能区分大小写
- 用户可以为代码指定可选的3个字符前缀
- 不得违反数据库中的2列唯一约束,即必须是“类别”中唯一的“代码文本”(
)constraint ucCodes unique(ColumnCodeText,ColumnCategoryId)
是否有一种性能合理的方法可以生成符合这些要求的代码,而不需要每次将一个代码保存到DB,然后等待唯一的密钥冲突来查看是否通过?这里有两种选择
这种奇怪的代码要求的商业目的是什么?在其他方面,它似乎违反了1NF,在值上粘贴了一个可选前缀。然后是与“随机”字符串相关的所有疯狂的东西。在长度为10的情况下,为了避免使用像sh1th0use这样的单词和其他形式的字符,有大量的工作没有提到。像这样的代码生成有很多问题。是的,可能都是公平的,但他们想要他们想要的。我已经提供了多种替代方案和更明智的解决方案,并且没有说“我不这么做,因为它有200个潜在问题”,我需要找到一种方法来满足需求。为了更直接地回答您的问题,业务需求是“我们知道我们的客户只能处理这种特定形状的键入和跟踪代码,所以这就是他们需要的外观”。