如何使用php和mysql创建标记系统?

如何使用php和mysql创建标记系统?,php,mysql,database-design,tags,tagging,Php,Mysql,Database Design,Tags,Tagging,我想知道如何用php和mysql数据库创建一个标签系统,我最初的想法是在表中创建一行存储文章,命名标签,并列出用逗号分隔的标签,但我不确定如何创建搜索匹配标签的查询,我不想每次有人点击标签时都要查询每一篇文章。有人能帮忙吗?tbl\U文章有文章ID等 tbl_标签具有tagID等 tbl_taggedarticles有taggedArticleID、articleID、tagID SELECT articleID FROM tbl_taggedarticles WHERE tagID = "se

我想知道如何用php和mysql数据库创建一个标签系统,我最初的想法是在表中创建一行存储文章,命名标签,并列出用逗号分隔的标签,但我不确定如何创建搜索匹配标签的查询,我不想每次有人点击标签时都要查询每一篇文章。有人能帮忙吗?

tbl\U文章有文章ID等

tbl_标签具有tagID等

tbl_taggedarticles有taggedArticleID、articleID、tagID

SELECT articleID FROM tbl_taggedarticles WHERE tagID = "searchedID"

您正在描述文章和标记之间的多对多关系。您可能希望使用中间连接表来解析该关系

现在,要查找与选定标记匹配的所有文章:

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'

我建议读一读“数据库规范化”。一个好的开始是。查找与给定列表的所有标记匹配的所有项目如何?似乎有3种方法可以做到这一点1)所有标记都作为主表的一部分的非规范化表2)主表具有项目id,第二个表具有项目id和标记,其中项目id和标记都被索引,3)您描述的结构