Php 如何为博客制作n:1多标签系统&;哪个数据库模式更好?
我想为博客及其文章创建一个标签系统;作为stackoverflow的问题标签系统 数据库结构 如果用户在输入中输入标签;假设他们输入以下标签:Php 如何为博客制作n:1多标签系统&;哪个数据库模式更好?,php,mysql,database-schema,Php,Mysql,Database Schema,我想为博客及其文章创建一个标签系统;作为stackoverflow的问题标签系统 数据库结构 如果用户在输入中输入标签;假设他们输入以下标签: php mysql 数据库结构 我想了解如何将以下标记转换为数组,然后将每个标记插入新的值行,如下所示 article_Tags tag_id | article_id | tag_name 1 1 php 2 1 mysql 3
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,在create post表单上显示这些标记,并在提交时相应地将所有内容插入到文章和文章标记表中 但是,您也可以让用户使用一点JavaScript直接从post表单创建标记,然后在插入article&article_标记之前将这些标记插入db
别忘了,无论哪种方式,你都需要检查重复的。每个示例使用10个不同的
php
标记没有任何意义。这称为多对多关系,最好创建一个中间表
你可能会问为什么?好吧,让我们试一个例子,看看哪个更好。假设你有100篇文章,每个都有3个标签,还有30个独特的标签
第一版:
article_标签
总共包含300个条目,这意味着每个标签名称平均重复10次
第二版:
article\u标签
将包含相同的300个条目,但标签名称不会出现300次,而是只会在标签
表中出现30次
因此,第二个版本的重复内容较少,因此您应该继续使用。谢谢,我仍然在思考如何根据PHP代码采取相应的步骤。你有skype吗?对不起,现在没有时间。但是如果你以后还需要帮助,请添加我@titiomm
Table - article
Fields - article_id, article_title, article_content
Table - article_tags
Fields - article_id, tag_id
Table - tags
Fields - tag_id, tag_name