想知道我如何在php和mysql数据库中创建一个标记系统,我最初的想法是在表格中创建一个存储文章的行,命名标签,并列出用逗号分隔的标签,但我是我不知道如何创建一个搜索匹配标签的查询,我不想每次有人点击标签时查询每篇文章。有人可以帮忙吗?
答案 0 :(得分:33)
您正在描述文章和标签之间的多对多关系。您希望使用中间联结表来解决该关系。
现在,要找到与所选标签匹配的所有文章:
SELECT a.article_title
FROM Tag t
INNER JOIN Article_Tag_Xref atx
ON t.tag_id = atx.tag_id
INNER JOIN Article a
ON atx.article_id = a.article_id
WHERE t.tag_name = 'SelectedTagName'
答案 1 :(得分:2)
tbl_articles有articleID等
tbl_tags有tagID等。
tbl_taggedarticles有taggedArticleID,articleID,tagID
SELECT articleID FROM tbl_taggedarticles WHERE tagID = "searchedID"