我正在创建一个新闻Web应用程序,每个新闻都有一个类别字段,但这个类别有时可以是一个或多个。这意味着,一个人可以只为一篇新闻文章输入politics, world, us
个标签。现在,我遇到的问题是如何将其插入数据库。如果我只是将标签直接输入数据库,作为纯文本,那么当我必须回应它时,我可以使用explode()来分隔它们,比如
$row['tags] = 'politics, world, us';
foreach(explode($row['tags') as $tag){
echo "<a href='{$tag}'> {$tag} </a> ";
}
哪个会回显标签,并为每个标签创建一个超链接,但我遇到的问题是,如果用户只想看到带有特定标签的新闻,那就变成了问题,因为有〜我没办法可以查询所有行,整理,爆炸标签,只显示这样的新闻源。这是可行的,但非常麻烦。所以,我想问一下如何做到这一点。我确定它涉及到,可能有另一个名为tags
的表,但这是我可以去的
答案 0 :(得分:2)
这样做的正确方法是在数据库中建立多对多的关系。这需要额外的表格,其中包含与彼此相关的类别和文章的ID
查看具有多个角色的多个用户的此示例:
以同样的方式,您可以创建文章与类别的关系
答案 1 :(得分:2)
您可以使用SET
来存储数据,或者我建议使用另一个表格添加标签,另一个表格存储Maciej所提及的文章和标签之间的关系。
文章表:
id | title | content
标签表:
id | label
articles_tags表:
article_id | tag_id
考虑将foreign key constraints添加到最后一个表格,这会让您的生活更轻松。