将多个标签添加到博客帖子的最佳方法是什么?

时间:2011-03-27 15:42:51

标签: php mysql tagging

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

tags_field = (cats ,animals, fur)

OR

id1 cats

id2 animals

id3 fur

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

2 个答案:

答案 0 :(得分:4)

您应该使用三个表:

  • 您存放帖子的一张桌子;每行一个帖子
  • 存储标签的一个表格;每行一个标签
  • 还有一个可以加入,你可以存储情侣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

答案 1 :(得分:1)

如果你采用第一种方法,你将难以查询。例如,您将无法轻松找到所有标记为“猫”的帖子。如果你选择第二种方法就不会有问题。

换句话说,你应该有postId_tag表来映射帖子和标签。