如何创建短链接?
1. 路径:页面路径
- 商家详情或二合一页面路径格式:pages/union/proxy/proxy?spreadUrl={encoded affiliate promotion link}
例如:https://jdc.e&p=AyIGZRprEAYUAFYTWCVGTV8LRGtMR1dGFxBFC1pXUwkEAEAdQFkJBV4RBBUEXRhETEdOWmVCWFZrREQ3WjhCXhBUFVstHXkITgNNVxkyFwZUGlgcBxcBVytbFAMQB1cbXRIEIjdVHmtDbBIGVBpaFAMaBFcrWRQDEQFUHlocBiIHUhpZFAQaBFMZXRIFIgddH2teQxEGVhpaewIWN2UrWCUyIgdlGGtLbBNUVRIJRlVGaQ9NDRQDQAQCdVwWAhsHUh9rFwMTBVc%253D
2. 注意事项
- spreadUrl 为联盟推广链接,需要使用 encodeURIComponent 进行编码
示例:联盟推广链接为上述示例,需进行 encodeURIComponent 编码后传递参数
encodeURIComponent('https://jdc.e&p=AyIGZRprEAYUAFYTWCVGTV8LRGtMR1dGFxBFC1pXUwkEAEAdQFkJBV4RBBUEXRhETEdOWmVCWFZrREQ3WjhCXhBUFVstHXkITgNNVxkyFwZUGlgcBxcBVytbFAMQB1cbXRIEIjdVHmtDbBIGVBpaFAMaBFcrWRQDEQFUHlocBiIHUhpZFAQaBFMZXRIFIgddH2teQxEGVhpaewIWN2UrWCUyIgdlGGtLbBNUVRIJRlVGaQ9NDRQDQAQCdVwWAhsHUh9rFwMTBVc%253D')
即
https://jdc.e&p=AyIGZRprEAYUAFYTWCVGTV8LRGtMR1dGFxBFC1pXUwkEAEAdQFkJBV4RBBUEXRhETEdOWmVCWFZrREQ3WjhCXhBUFVstHXkITgNNVxkyFwZUGlgcBxcBVytbFAMQB1cbXRIEIjdVHmtDbBIGVBpaFAMaBFcrWRQDEQFUHlocBiIHUhpZFAQaBFMZXRIFIgddH2teQxEGVhpaewIWN2UrWCUyIgdlGGtLbBNUVRIJRlVGaQ9NDRQDQAQCdVwWAhsHUh9rFwMTBVc%253D
短链接系统的设计与原理
#### 设计与实现

创建短链接的核心在于将冗长的URL转化为简洁的短地址,并确保能够从短地址还原出原始的长地址。然而,完美的映射关系在实际操作中难以实现。
##### 一一对应算法
理想情况下,我们希望实现一种算法,使得每个长地址都能唯一地映射到一个短地址,反之亦然。但这种算法如同寻找永动机,理论上不可行。即便假设短地址长度为100位,其可能的组合数量也是天文数字,远超实际可用的长地址数量。
##### 存储与查找
另一种思路是通过数据库存储长地址与短地址之间的映射关系。当接收到短地址请求时,查询数据库获取对应的长地址。这种方法虽然可行,但存在以下问题:
- 冲突:多个不同长地址可能会被映射到相同的短地址。
- 数据库负载:随着短地址数量的增长,数据库的压力也随之增大。

##### 哈希算法
为了应对上述问题,可以使用哈希算法来简化短地址的生成过程。哈希算法会将长地址转换为固定长度的字符串,但由于哈希值的有限性,可能会导致多个长地址产生相同的哈希值(碰撞)。处理方式包括:
- 在哈希值后附加额外的标识符(如1, 2, 3等),以区分不同的长地址。
- 使用树状结构(如B树)来管理哈希值,提高查找效率。
##### 随机生成

另一种简单粗暴的方法是随机生成短地址,检查其是否已被使用,若已使用则重新生成,直至找到未被占用的短地址。这种方法虽能完成任务,但不具备高效性和可靠性。
#### 正确的原则
以上方法均存在缺陷,因此采用了一种更为合理的