我已经阅读了问答How to code a URL shortener?,所有的数学知识都很有意义。我的问题是,既然您必须返回数据库/数据存储进行查找,为什么不在字母表中生成一个随机的短字符串,并将其与完整的URL一起存储在数据存储中,而不是将其转换回数字ID呢?
对我来说,这似乎省去了在服务器上做任何数学运算,降低了复杂性,并消除了短URL空间的“可遍历”(对于我的用例,这是至关重要的;URL不能被猜测)。如果使用为键>值查找而设计的NoSQL存储,那么从字符串而不是数字ID查找完整的URL值似乎不存在任何潜在的性能问题。
我想知道我是不是错过了什么。
发布于 2014-06-27 05:34:32
随机短字符串方法违反了缩短函数的双射特性。
给定两个URL a和b以及您的缩短函数f,应该保证:如果a = b则为f(a) = f(b),但是,由于f生成一个随机值,因此违反了双射。
但是,如果您只是希望缩短任何特定的URL,并且不介意相同URL的后续缩短将生成不同的值,那么您上面概述的方法将会更有效。
https://stackoverflow.com/questions/24440589
复制相似问题