向博客文章添加多个标签的最佳方法是什么?

pin*_*ong 2 php mysql tagging

当用户从字段中选择多个标签时,我真的想向博客文章添加多个标签,但我想知道在 mysql 中存储标签时,我应该有字段来保存所有标签,还是应该一一存储,即

tags_field = (cats ,animals, fur)
Run Code Online (Sandbox Code Playgroud)

或者

id1 cats

id2 animals

id3 fur
Run Code Online (Sandbox Code Playgroud)

我正在考虑使用第一个示例,然后在将列表呈现给用户时分解列表并将它们分成单个标签!:)) 谢谢

Pas*_*TIN 5

您应该使用三个表:

  • 一张用于存储帖子的桌子;每行一个帖子
  • 一张用于存储标签的表;每行一个标签
  • 还有一个可连接的,可以存放情侣的地方tag_id + post_id

这样,一个标签可以被多个帖子使用,一个帖子可以有多个标签——并且不会出现任何类型的数据重复。


所以,基本上,您的表格将如下所示:

posts
  - id ; primary key
  - date
  - title
  - content

tags
  - id ; primary key
  - name

posts_tags
  - tag_id   ; primary key ; foreign key to tags.tag_id
  - post_id  ; primary key ; foreign key to posts.post_id
Run Code Online (Sandbox Code Playgroud)