我想在 mysql 中存储大量唯一的、可索引的 url。它们将由用户编写,并具有非常广泛的接受度,因此几乎所有内容都会出现。
但我不喜欢已经回答的SO question也不喜欢它的前身。实际上,我认为这样做可能有一种“更好”的方法,但我并不完全明白这一点的含义,所以这就是我问这个问题的原因。
为此目的使用 tinyurl.com 的 API 有哪些优点/缺点?在此链接中,我们可以看到有关如何执行此操作的文章。只是这段代码(可能更短,但我更喜欢在函数中使用它):
function createTinyUrl($strURL)
{
return file_get_contents("http://tinyurl.com/api-create.php?url=".$strURL);
}
然后我只需要比较example
intinyurl.com/example
来检查链接的唯一性。从维基百科文章中,我们可以阅读:
如果 URL 已经被请求,TinyURL 将返回现有的别名而不是创建一个重复的条目。
缺点(与使用任何集中式系统基本相同):
Tinyurl 服务器可能会暂时或永久关闭。以防万一,完整的 url 将存储在另一个未索引的字段中。
不可逆。你可以从你的 url 中得到一个 tinyurl,但反过来更难。但是,第一个问题的解决方案也解决了这个问题。
就我而言,网址不是私有的,但这可能会阻止某人使用此解决方案。
延迟。请求可能会慢一些,但由于它是服务器到服务器的对话,我认为这不会很明显。不过会做一些基准测试。
使用此方法可以看到任何其他缺点?使用它的主要原因是没有重复的条目并使它们可索引。