如何处理文章网站的多个类别条目

时间:2014-11-03 20:19:06

标签: php mysql

我正在创建一个新闻Web应用程序,每个新闻都有一个类别字段,但这个类别有时可以是一个或多个。这意味着,一个人可以只为一篇新闻文章输入politics, world, us个标签。现在,我遇到的问题是如何将其插入数据库。如果我只是将标签直接输入数据库,作为纯文本,那么当我必须回应它时,我可以使用explode()来分隔它们,比如

$row['tags] = 'politics, world, us';

foreach(explode($row['tags') as  $tag){
  echo "<a href='{$tag}'> {$tag} </a> ";
}

哪个会回显标签,并为每个标签创建一个超链接,但我遇到的问题是,如果用户只想看到带有特定标签的新闻,那就变成了问题,因为有〜我没办法可以查询所有行,整理,爆炸标签,只显示这样的新闻源。这是可行的,但非常麻烦。所以,我想问一下如何做到这一点。我确定它涉及到,可能有另一个名为tags的表,但这是我可以去的

2 个答案:

答案 0 :(得分:2)

这样做的正确方法是在数据库中建立多对多的关系。这需要额外的表格,其中包含与彼此相关的类别和文章的ID

查看具有多个角色的多个用户的此示例:

enter image description here

以同样的方式,您可以创建文章与类别的关系

答案 1 :(得分:2)

您可以使用SET来存储数据,或者我建议使用另一个表格添加标签,另一个表格存储Maciej所提及的文章和标签之间的关系。

文章表:

id | title | content

标签表:

id | label

articles_tags表:

article_id | tag_id

考虑将foreign key constraints添加到最后一个表格,这会让您的生活更轻松。