一个 id 对应于一个图片 url 链接,现在是图片 url 会重复,现在只要新的 id 对应 url 有重复则继承之前给 url 打过的标签,想过用 mysql 的索引或者唯一键,但是图片 url 比较长,并且是 varchar 的,想问下有没有好的办法
1
dswyzx 2019-10-03 10:23:51 +08:00
我以前写的爬虫.url 直接 md5 后存,但只做是否重复判断用.
|
2
hmshsnyt OP @dswyzx 这个我也想到了,用 boomfilter,但是只能知道是否重复,没有与以前 id 的映射关系,也就不知道这个图片的以前标签属性
|
3
mumbler 2019-10-03 11:00:06 +08:00 via Android
把 url 的 md5 建个字段存下来,主键唯一
|
4
ebony0319 2019-10-03 11:06:51 +08:00 via Android
url 过长问题:?id=abc123&code=5478
多设计一列 code,code 完全随机,可以重复。 |
5
hakono 2019-10-03 12:00:44 +08:00 via iPhone
你这逻辑实际上是 url 的 md5 值和 id 一对多关联
具体怎么设计表你随便找找一对多的表设计思路就知道了 mysql 下一个方法就是 单独一个表,url 的 md5 做主键唯一,然后另外一个 text 的字段存放字符串形式数组,字符串可以逗号分割也可以转成 json 但这样一个坏处就是没法从 id 反查到 url 的 md5 (如果你没这需求就不用在意这个坏处了) 当然上面是歪门邪道。。。 最简单方法就是给 id 那个表添加个 url md5 的字段然后加索引,delect id,urlmd5 from ids where urlmd5 =xxxxxxxxxxxxxxx 就能搜出你要的信息了 |