作家
登录

短网址(short URL)系统的原理及其实现

作者: 来源: 2017-11-22 13:11:11 阅读 我要评论

  • io2=>inputoutput: 返回短网址 
  • op1=>operation: 返回对应的短码 
  • op2=>operation: 保存输入的网址到数据库 
  • op3=>operation: 根据id计算对应的短码 
  • op4=>operation: 更新短码到数据库 
  • cond1=>condition: 萌芽数据库 
  • 是否存在对 
  • 应的短码 
  •  
  • st->io1->cond1 
  • cond1(no,bottom)->op2->op3->op4->op1->io2->e 
  • cond1(yes)->op1->io2->e 
    1. st=>start: 开端 
    2. e=>end: 停止 
    3. io1=>inputoutput: 输入网址 
    4. io2=>inputoutput: 返回短网址 
    5. io3=>inputoutput: 提示用户 
    6. 该短码已存在 
    7. io4=>inputoutput: 提示用户 
    8. 不克不及输入短链接 
    9. op1=>operation: 返回短码 
    10. op2=>operation: 保存输入的网址到数据库 
    11. op3=>operation: 根据id计算对应的短码 
    12. op4=>operation: 萌芽数据库 
    13. 获得一条 
    14. 自定义短码的url 
    15. 对应的id记录 
    16. op5=>operation: 更新短码到数据库 
    17. cond1=>condition: 萌芽数据库 
    18. 是否存在该URL 
    19. cond2=>condition: 用户选择 
    20. 自定义短码 
    21. cond3=>condition: 生成的短码 
    22. 是否存在 
    23. cond4=>condition: 短码是否存在 
    24. cond5=>condition: 短码是否存在 
    25. cond6=>condition: 自定义的短码 
    26. 是否存在 
    27. cond7=>condition: 用户输入的是短链接 
    28.  
    29. st->io1->cond7 
    30. cond7(no,bottom)->cond1 
    31. cond7(yes)->io4->e 
    32. cond1(no,bottom)->cond2 
    33. cond1(yes)->op1->io2->e 
    34. cond2(no,bottom)->op3->cond4 
    35. cond2(yes)->cond5 
    36. cond4(no, bottom)->op5->op1->io2->e 
    37. cond4(yes)->op4->op3->cond4 
    38. cond5(no,bottom)->op5 
    39. cond5(yes)->io3->e 

    然则自增序列算法是和 id 绑定的,如不雅许可自定义短码就会占用之后的短码,之后的 id 要生成短码的时刻就发明短码已经被用了,那么 id 自增一对一不冲突的优势就表现不出来了。

    那么怎么实现自定义短码呐?

    我是如许处理的:

    • 数据库增长一个类型 type 字段,用来标记短码是用户自定义生成的,照样体系主动生成的。
    • 如不雅有效户自定义过短码,把它的类型标记自定义。每次根据 id 计算短码的时刻,如不雅发明对应的短码被占用了,就大年夜类型为自定义的记录里拔取一笔记录,用它的 id 去计算短码。
    • 如许既可以区分哪些长连接是用户本身定义照样体系主动生成的,还可以不浪费被自定义短码占用的 id

    我保存了 1 到 2 位的 短码,安闲位的短码开端生成的。厩ㄑ域名的保存域名一样,好的要本身预留 :smirk:

    短网址(short URL)体系的道理及其实现

    数据表设计

    links 表

    短网址(short URL)体系的道理及其实现

    后期功能扩大

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)