目前我正在使用逗号“,”将标签保存为文本,当我需要它们处理和使用某处时,我需要分解字符串,例如“美国,加拿大,犯罪,多伦多,音乐,秋天”。
我在想是否有更好的方法(更少的资源和耗时的友好)来做这个标签,或者这是每个人都使用的唯一解决方案。
编辑:我有一个小项目,在管理员中没有标签管理。我不需要三个表只用于数据库中的标签。我只是在寻找一些更聪明的解决方案,如何从数据库中保存的字符串中保存和分解标签。
使用三表方法,真的!真的真的!
否则,您将如何查询带有“usa”标签的项目而不获取带有“usable”标签的项目?LIKE %usa%
将返回两者。
有关在 db 中实现标签的三种方法的讨论,请参阅此: http ://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html
编辑回应评论:
逗号,逗号,逗号……
逗号无济于事 无济于事 无济于事。示例标签字段:culture,usa
. 你会怎么LIKE
做?
您可以按以下格式保存标签:(,culture,usa,
声明并以逗号结尾)。
恕我直言,这将带来一些特殊情况,最终会变得比三表方法更复杂。
假设标签与某些项目(用户、博客等)相关,有一种简单的方法可以做到这一点
Table_Tags
{
tag_id:index for the table entries,
item_id,
tag_code: usa,
source: app_system, comment, fb, twitter etc
<other audit fields>
}
在处理项目/填充项目时,也可以填充标签。
希望这可以帮助