100分,讨论一下Web2.0标签功能的实现
觉得标签确实比较有用,分类起来很方便,但是对于实现没有一个权威的解释,大家觉得该如何实现呢。
我现在的设想是:
一个标签表
---------------------------
标签名称 varchar(1000)
文章数量 int
---------------------------
一个文章表中有一个存放标签的字段,以逗号分割 如:标签1,标签2
有以下一些疑问:
1. 标签应该以原样存到数据库里,还是应该编码?我看大部分网站都是使用UrlEncode来显示中文标签,那么数据库中是不是也应该存放Encoded的标签呢,这样做便于查询?那文章的标签字段不是也变成了 %xx%xx%xx,%xx%xx%xx ??
2. 标签表那么设计是否正确?因为发布文章的时候输入标签肯定是提供一个文本框,标签让用户以逗号分割,这样提交表单的时候,分割字符串,然后用循环把每个标签插入数据库,并把数量字段+1?删除文章或删除文章所用标签的时候也要把标签表的数量字段-1?有更高效率的做法吗?
大家讨论一下吧。