Sql server 在SQLServer08中,如何对Id列使用base 36跳过粗俗的单词?

Sql server 在SQLServer08中,如何对Id列使用base 36跳过粗俗的单词?,sql-server,uniqueidentifier,unique-key,Sql Server,Uniqueidentifier,Unique Key,我需要尽可能短的ID,所以我认为base-36可以很好地用于此。其思想是我将使用一个自动递增的Id字段作为主键,然后创建一个base-36用户Id。不幸的是,我不可避免地会遇到很多粗俗的单词组合。我很难找到解决这个问题的最佳方法,因为可疑单词可能是字符串的任意组合 有什么想法吗 谢谢您可以在选择的数字中省略元音(可以使用基数31,也可以添加更多字符,使其恢复到32或36或其他数字) 如果您的系统能够区分大小写,那么您可以使用大写和小写字母来扩展数字范围。您指出长度很重要,因此这可能是一种有用的方

我需要尽可能短的ID,所以我认为base-36可以很好地用于此。其思想是我将使用一个自动递增的Id字段作为主键,然后创建一个base-36用户Id。不幸的是,我不可避免地会遇到很多粗俗的单词组合。我很难找到解决这个问题的最佳方法,因为可疑单词可能是字符串的任意组合

有什么想法吗


谢谢

您可以在选择的数字中省略元音(可以使用基数31,也可以添加更多字符,使其恢复到32或36或其他数字)


如果您的系统能够区分大小写,那么您可以使用大写和小写字母来扩展数字范围。您指出长度很重要,因此这可能是一种有用的方法。

Hmm,我想知道是否将其设为35为基数,并使用0作为粗俗单词的替换字段。有点像a0s,fu0k,0ick。。嗯,不要跳过它们。它使编程职业变得有价值@米奇-哈哈,这是真的。看到一个非营利组织被起诉,我会感到很难过,因为一些15岁的小妞得到了用户id…是的,我喜欢这比使用通配符替换要好得多。谢谢上/下无元音为62,chuck加上另外两个,您有自己的base64的无亵渎实现。。。虽然没有那么有趣,但我想你是对的,这可能会节省一些解释。。。