当用户从字段中选择多个标签时,我真的想在博客帖子中添加多个标签,但我想知道在mysql中存储标签,我是否有字段来保存所有标签,或者应该存储一个标签一个即
tags_field = (cats ,animals, fur)
OR
id1 cats
id2 animals
id3 fur
我正在考虑使用第一个示例然后将列表分解并在将它们呈现给用户时将它们分成单个标记! :))谢谢
答案 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表来映射帖子和标签。