如何将一个长度不定的长URL转换成一个6位的短网址

算法1 hash function,但是没办法去设计一个没有冲突的哈希算法
算法2:随机生成一个8位的shortURL,如果没有被只用过 那么就跟这个longURL绑定。但是检查这个shortURL是否被使用过 这个检查耗时会越来越多
算法3:6位字符串能表示多少不同的String?这取决于有多少不同的字符。如果有62个字符(26+26+10)那么可以表示的就有570亿 我们把这个数对应到sequential id里面
算法2和算法三其实都是可以的,下面分别细细地讲一下:
算法2,随机生成:
如果我们选择SQL,那么我们就要针对shortkey和longURL分别建立索引
如果我们选择NoSQL,但是我们需要建立两张表 因为大多数NoSQL数据库不支持二级索引。这是什么意思呢,就是说:
短网址生成算法_nosql
基于进制转换的方法:
因为这种算法需要用到自增ID 因此只能适用SQL数据库,而且这种方法还不需要储存短ID 因此表单结构如下:
短网址生成算法_二级索引_02