我想为博客及其文章创建一个标签系统; 作为问题的 stackoverflow 标记系统。
数据库结构
Table - articles
Fields - article_id, article_title, article_content
Table - article_tags
Fields - tag_id, article_id, tag_name
如果用户在输入中输入标签;假设他们输入了以下标签:
php
mysql
数据库结构
我想了解如何将以下标签转换为数组,然后将每个标签插入到一个新的值行中,如下所示。
article_Tags
tag_id | article_id | tag_name
1 1 php
2 1 mysql
3 1 database structure
我想让 PHP 用逗号分隔每个标记,并将其分别插入到新的行值中。
我该如何实现?我是否需要 foreach 和 explode() 来分解每个标签?
下面的表结构是不是比上面的好?
Table - article
Fields - article_id, article_title, article_content
Table - article_tags
Fields - article_id, tag_id
Table - tags
Fields - tag_id, tag_name
如果是这样,我如何将每个标签输入数据库,我是否需要 explode() 以及第一个表结构?
最佳答案
你的第二个结构更好。您以这种方式存储的数据更少。
最简单的方法是为标签表创建一个 CRUD,以在您的创建帖子表单上显示这些标签,并在提交时将所有内容相应地插入到您的文章和 article_tags 表中。
但您也可以让用户使用一些 JavaScript 直接从帖子表单创建标签,然后将这些标签插入到数据库中,然后再插入到文章和 article_tag 中。
请不要忘记,无论哪种方式,您都需要检查重复项。每个示例有 10 个不同的 php
标签是没有意义的。
关于php - 如何制作 n :1 multiple tags system for a blog & which database schema is better?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20033867/