MySQL 表关联问题

草鸡无名 2017-09-29 04:29:02
我用爬虫抓取了一些新闻数据,现在要将数据拆分开来,如图:

我想把dislike_resson拆分开来,那新闻的dislike 字段改如何与dislike_reson 表关联,每条新闻都对应多个dislike 字段 ,而每个dislike 又可能对应多条新闻,求教下
...全文
248 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq156526229 2017-10-03
  • 打赏
  • 举报
回复
技术大牛啊,赞赞
benluobo 2017-09-29
  • 打赏
  • 举报
回复
楼上的方法多出的关联表的实际就是将dislike字段从新闻表中去掉,单独到新的关联表中去存储 查询包含 可以使用 mysql的 find_in_set函数即可
benluobo 2017-09-29
  • 打赏
  • 举报
回复
查询的时候在sql语句中使用表连接即可查询出具体的reason
benluobo 2017-09-29
  • 打赏
  • 举报
回复
单独建立reason表,每条记录为id,reason 在新闻的dislike字段存储reason表的id的值的拼装,例如dislike存储1,2,3
草鸡无名 2017-09-29
  • 打赏
  • 举报
回复
引用 10 楼 u013835778 的回复:
[quote=引用 8 楼 ldhj1993 的回复:] [quote=引用 6 楼 benluobobo 的回复:] 单独建立reason表,每条记录为id,reason 在新闻的dislike字段存储reason表的id的值的拼装,例如dislike存储1,2,3
这个方法和楼上的说法不一样啊,楼上建议单独建立一张关系表,能说下两种的具体区别么? 还有个疑问,就是照你的这种方法,存储拼接字段,比如存1,2,3时,要判断包含理由2的新闻是哪些的时候, 在SQL语句中的判断语句怎么写?先取出字符串来,再判断是否包含2?[/quote] 看你怎么使用了,关联表的话查询会麻烦点多关联一次,但统计方便灵活 存储拼接字段,比如存1,2,3时 新闻查标签容易 ,但是通过标签查新闻就麻烦 而且效率也会比较差 灵活性差[/quote] 谢谢
lifewell1 2017-09-29
  • 打赏
  • 举报
回复
引用 8 楼 ldhj1993 的回复:
[quote=引用 6 楼 benluobobo 的回复:] 单独建立reason表,每条记录为id,reason 在新闻的dislike字段存储reason表的id的值的拼装,例如dislike存储1,2,3
这个方法和楼上的说法不一样啊,楼上建议单独建立一张关系表,能说下两种的具体区别么? 还有个疑问,就是照你的这种方法,存储拼接字段,比如存1,2,3时,要判断包含理由2的新闻是哪些的时候, 在SQL语句中的判断语句怎么写?先取出字符串来,再判断是否包含2?[/quote] 看你怎么使用了,关联表的话查询会麻烦点多关联一次,但统计方便灵活 存储拼接字段,比如存1,2,3时 新闻查标签容易 ,但是通过标签查新闻就麻烦 而且效率也会比较差 灵活性差
草鸡无名 2017-09-29
  • 打赏
  • 举报
回复
引用 6 楼 benluobobo 的回复:
单独建立reason表,每条记录为id,reason 在新闻的dislike字段存储reason表的id的值的拼装,例如dislike存储1,2,3
这个方法和楼上的说法不一样啊,楼上建议单独建立一张关系表,能说下两种的具体区别么? 还有个疑问,就是照你的这种方法,存储拼接字段,比如存1,2,3时,要判断包含理由2的新闻是哪些的时候, 在SQL语句中的判断语句怎么写?先取出字符串来,再判断是否包含2?
草鸡无名 2017-09-29
  • 打赏
  • 举报
回复
引用 4 楼 u013835778 的回复:
[quote=引用 3 楼 ldhj1993 的回复:] [quote=引用 1 楼 u013835778 的回复:] 新闻表 标签表 和关联表 dislike_resson字段拆分 存放表标签中 插入时候判断是否存在 不存在则新建插入获取id 存在获取标签表id 然后插入关联标准
我已经把dislike_reason 的字段都取出来建立了表,那么一条新闻对应多个reason,这些reason的ID值拼接存储在新闻的dislike字段里面吗[/quote] 不用就是一张表变3张表 新闻表 标签表 和关联表 dislike_resson字段可以不要了 你抓取的时候有新闻数据和标签数据 先把标签拆分插入标签表 先判断表标签是否存在 存在获取id 不存在插入获取新id 然后插入新闻表 获取新闻id 在把新闻id 和标签id 插入关联表中 一条一条插入 新闻表 id 标签表 id 这样插入就好[/quote] 弄好了,这样的话是不是当以后要查询新闻和dislike 的时候就去关联表中查询到相应id然后再去新闻表和dislike表中去取相应的值?
lifewell1 2017-09-29
  • 打赏
  • 举报
回复
引用 3 楼 ldhj1993 的回复:
[quote=引用 1 楼 u013835778 的回复:] 新闻表 标签表 和关联表 dislike_resson字段拆分 存放表标签中 插入时候判断是否存在 不存在则新建插入获取id 存在获取标签表id 然后插入关联标准
我已经把dislike_reason 的字段都取出来建立了表,那么一条新闻对应多个reason,这些reason的ID值拼接存储在新闻的dislike字段里面吗[/quote] 不用就是一张表变3张表 新闻表 标签表 和关联表 dislike_resson字段可以不要了 你抓取的时候有新闻数据和标签数据 先把标签拆分插入标签表 先判断表标签是否存在 存在获取id 不存在插入获取新id 然后插入新闻表 获取新闻id 在把新闻id 和标签id 插入关联表中 一条一条插入 新闻表 id 标签表 id 这样插入就好
草鸡无名 2017-09-29
  • 打赏
  • 举报
回复
引用 1 楼 u013835778 的回复:
新闻表 标签表 和关联表 dislike_resson字段拆分 存放表标签中 插入时候判断是否存在 不存在则新建插入获取id 存在获取标签表id 然后插入关联标准
我已经把dislike_reason 的字段都取出来建立了表,那么一条新闻对应多个reason,这些reason的ID值拼接存储在新闻的dislike字段里面吗
草鸡无名 2017-09-29
  • 打赏
  • 举报
回复
引用 1 楼 u013835778 的回复:
新闻表 标签表 和关联表 dislike_resson字段拆分 存放表标签中 插入时候判断是否存在 不存在则新建插入获取id 存在获取标签表id 然后插入关联标准
可以所清楚些么,我是菜鸟
lifewell1 2017-09-29
  • 打赏
  • 举报
回复
新闻表 标签表 和关联表 dislike_resson字段拆分 存放表标签中 插入时候判断是否存在 不存在则新建插入获取id 存在获取标签表id 然后插入关联标准

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧