三、技术实现方案
1、短链生成算法
哈希法:对长URL做Hash(如MD5),截取前6位作为短码(冲突概率低但可能重复)。
自增ID法:使用数据库自增主键(如MySQL),转换为62进制(azAZ09)缩短长度。
python
示例:将数字ID转为短码
def int_to_base62(num):
chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
base = len(chars)
result =
while num 0:
num, rem = divmod(num, base)
result = chars[rem] + result
return result or chars[0]
2、数据库设计
sql
CREATE TABLE short_links (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
long_url TEXT NOT NULL,
short_code VARCHAR(10) UNIQUE NOT NULL,
custom_alias VARCHAR(50), 自定义别名
user_id INT, 关联付费用户
expires_at DATETIME, 过期时间
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);