gpt4 book ai didi

php - 制作 "hashtag"系统的最佳方法

转载 作者:可可西里 更新时间:2023-11-01 06:33:30 25 4
gpt4 key购买 nike

这可能是一个问题,我失去了更多的时间来思考如何正确地做,以最佳优化的方式思考。

我有一个表“Contents”,需要添加将多个“hashtags”或“tags”或“keywords”关联到内容的选项,例如“fried potatos with ketchup”这样的内容有“键”:“土 bean ”、“番茄酱”和“油炸”。

当我通过一个词进行搜索时,例如“potato”,我需要显示其中包含该词标签的内容。

问题是,执行此操作的最佳结构是什么,考虑结果的速度,因为内容表是 MyISAM mith,超过 30 Millon 行。

我认为:

再制作 2 个表,“contents_hashtags”(id(INT11), content_id(INT11), hashtag_id(INT11)) 和“hashtags”(id(INT11), hashtag(VARCHAR (40))) InnoDB 中的 2 个表

当用户创建/修改表内容时,我在 hashtags 表中搜索并获取 ID,如果 hashtag 不存在,则在表 hashtag 中创建它,如果存在,则获取 ID,使用此 ID在表 contents_hashtas 中创建插入关联内容 <-contents_hashtas-> hashtahs

在搜索中,进行 JOINS(LEFT/RIGHT/INNER dude..)并按 LIKE 搜索 ??通过精确(hashtag =“XXX”)或全文搜索?

这个方法正确/快速吗?我不知道如何在大行数和大流量的情况下运行它..

最佳答案

三个表就可以了:

内容、标签和 ConTag。 ConTags 将是一个包含 contents.id 和 hashtags.id 的联结表。通过这种方式,您可以将多个主题标签归因于内容中的每个项目。

SELECT * FROM Contents c, Hashtags h LEFT JOIN ConTags t ON c.Id = t.ConId AND h.Id = t.HashId

或者,将 Hashtags NameContentId 设置为唯一键,不再需要联结表

关于php - 制作 "hashtag"系统的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9282091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com