我做了两个表1)存储关键字2)有文章标题和关键字在article表中,关键字id以集合形式存储,如(1,2,3,6,7)现在我想搜索关键字和标题的最大发生率的用户价值;示例关键字表笔-1纸-2铅笔-3 a4-4记号笔-5文章表标题关键词神奇铅笔用纸1,2,4用户搜索魔笔怎样才能有效搜索
yrwegjxp1#
最好的解决方案是使该字段不包含逗号分隔的所有关键字值,如 1,2,3,4 你应该管理它的多对多表例如:关键词文章关键字到文章(id,关键字id,文章id)这样做之后,您的数据库将处于第三范式,通过执行
1,2,3,4
select a.* from articles a join keywords_to_articles ka on ka.article_id = a.id join keywords k on k.id = ka.keyword_id and k.name = '$keyword'
这里我假设在关键字表中存储 name 现场。像上面提到的那样做将是一个有效的方法。
name
1条答案
按热度按时间yrwegjxp1#
最好的解决方案是使该字段不包含逗号分隔的所有关键字值,如
1,2,3,4
你应该管理它的多对多表例如:
关键词
文章
关键字到文章(id,关键字id,文章id)
这样做之后,您的数据库将处于第三范式,通过执行
这里我假设在关键字表中存储
name
现场。像上面提到的那样做将是一个有效的方法。