我使用Stack Overflow中所述的双射函数算法构建了一个URL缩短器。我的数据库表有两列; ID
和URL
。对于每个输入URL,ID
会自动递增,其值将转换为base62。该值形成缩短链接的slug。
示例:如果ID
为42
,则其base62格式为g
(可能因字母集而异)。因此,缩短的网址为https://example.com/g
。
现在,我想添加自定义网址支持,用户可以选择自定义网址。我可以创建另一个表来存储自定义URL,然后检查两个表以查找匹配的slug。但这似乎效率很低。
任何人都可以提供有效的解决方案吗?
P.S。我正在使用PHP和MySQL。
答案 0 :(得分:0)
你可以将slug反向映射到它自然生成时会占用的相应ID,只需记住这一点:
在增加您的ID变量之前,您可以确保输入与该ID相对应的slug的人员尚未填充它将增加的条目,如果是这样的话,只需继续增加ID列,直到您找到一个新的独特价值。