但是自增序列算法是和 id 绑定的,如果允许自定义短码就会占用之后的短码,之后的 id 要生成短码的时候就发现短码已经被用了,那么 id 自增一对一不冲突的优势就体现不出来了。 那么怎么实现自定义短码呐? 我是这样处理的: 数据库增加一个类型 type 字段,用来标记短码是用户自定义生成的,还是系统自动生成的。 如果有用户自定义过短码,把它的类型标记自定义。每次根据 id 计算短码的时候,如果发现对应的短码被占用了,就从类型为自定义的记录里选取一条记录,用它的 id 去计算短码。 这样既可以区分哪些长连接是用户自己定义还是系统自动生成的,还可以不浪费被自定义短码占用的 id 我保留了 1 到 2 位的 短码,从三位的短码开始生成的。就像域名的保留域名一样,好的要自己预留 :smirk:
数据表设计 links 表
后期功能扩展 统计:点击量、访问的 ip 地域、用户使用的设备 管理后台:删除、数据量 登录:权限管理 设置密码:输入密码才可以继续访问 (责任编辑:admin) |