为了账号安全,请及时绑定邮箱和手机立即绑定

通过标签来检索内容,该如何设计数据库。

通过标签来检索内容,该如何设计数据库。

蝴蝶不菲 2019-04-13 08:36:32
比如一篇文章被标记了多个标签,情感,小清新,生活。也就是一篇文章对应多个标签,这样我是做成一篇文章id对应一篇文章标签id好还是一篇文章id对应多个标签id加,连接好?我在考虑文章多了,第一种方式是不是记录就太多了?比如1百万文章,可能有几百万条记录也就是11121314还是11,2,3,4还有第二种方式检索是不是很慢?
查看完整描述

2 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

第二种我觉得更好,但是为了保证速度,你要为你的数据库里面的tid字段添加全文索引。
加入你的表明叫article,分类字段叫tid。那么你就要为你的字段添加索引。
ALTERTABLEarticleADDFULLTEXT(tid);
如果你要查询的tid是1,4,9,25当你要查询的时候,就这么做:
SELECT*FROMarticleWHEREMATCH(tid)AGAINST('14925');
                            
查看完整回答
反对 回复 2019-04-13
?
慕村225694

TA贡献1880条经验 获得超4个赞

可以试试用MySQL的函数FIND_IN_SET:比如SELECTFIND_IN_SET('b','a,b,c,d')将返回2.比如查询指定标签'php'下的文章:用FIND_IN_SET可以这样:SELECT*FROM`posts`WHEREFIND_IN_SET('php',`tags`);用MATCHAGAINST可以这样:SELECT*FROM`posts`WHEREMATCH(`tags`)AGAINST('php');
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 318 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号