回答
基本上你需要的标签(ID,标签)表和标签到岗位M:M关系关系表(TAG_ID,POST_ID)。要选择一个给定的标签
select posts.* from posts, tags, post_tags
where post_tags.post_id = posts.id
and post_tags.tag_id = tags.id
and tags.tag = "whatever_tag"
帖子回应的评论:单个表(TAG,后)的做法,可能会出现“更简单”,但它不是完全可扩展的。如果你决定添加一些额外的信息到你的标签 - 如创建日期或创建它,会怎样?或者让用户拥有“最喜欢的标签”,就像SO这样 - 没有单独的标签表,这将会很棘手。
一般来说,最好保留数据库normalized,即使它在开始的时候看起来很“复杂”。
感谢stereofrog,我想知道如果做1表会更好:标签(tagtitle,entryid)? – Ryan 2010-03-14 21:00:51
我同意stereofrog。 2表方法可能是最好的方法。保持您的标签表清洁和独特也允许M:M关系 – Jayrox 2010-03-14 21:33:48
@Tom:请参阅编辑... – user187291 2010-03-14 21:55:09
有一些很好的推理和性能测试可以在文章中"Tagsystems: performance tests"
- 1. 支持标签/标签的最常用的版本控制系统是什么?
- 2. 什么文件系统支持Java UserDefinedFileAttributeView?
- 3. 什么是AEM 6.2支持的所有操作系统?
- 4. iPhone支持的ID3标签中的APIC格式是什么?
- 5. 什么是持久性C++系统?
- 6. smarty标签和css条件标签是一样的,解决方案是什么?
- 7. RSS 2.0描述标签中支持的元素是什么?
- 8. 目标不支持该体系结构的含义是什么?
- 9. 标记系统中的taggable_id是什么?
- 10. Oracle SQL是否支持系统函数中的输出参数?
- 11. 的标签系统
- 12. 什么系统不支持waitpid的WNOHANG选项?
- 13. 什么是C++方案的标记数据的替代方案
- 14. 标准操作系统命名方案
- 15. PHP支持聊天系统
- 16. 支持android系统中
- 17. iOS日历是否支持URL方案?
- 18. 为什么Hadoop文件系统不支持随机I/O?
- 19. 为什么Sitecore 8.2不支持Windows 7操作系统?
- 20. 为什么Bootloader需要支持文件系统?
- 21. 为什么Bootstrap网格系统默认不支持5列?
- 22. 什么源码控制系统支持触发器
- 23. 为什么HTML5中不支持标题大小标签?
- 24. PHP标签系统
- 25. 什么是Android支持库?
- 26. 以编程方式确定系统是否支持待机
- 27. 标签系统中标签的ID
- 28. 什么是我的方案
- 29. 什么是远程桌面/视觉支持的最佳解决方案?
- 30. CRM系统还是什么?
可能重复:http://stackoverflow.com/questions/20856/how-do-you-recommend-implementing-tags-or-tagging – APC 2010-03-14 20:39:33