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