1.表的关系
我是用三个表来实现的:一个主的文章表,两个tags的附加表。
2.数据插入
在文章表news里边有一个字段news_tags,放置该文章的所有tags。
比如一个简单的文章:五邑大学第十四届辩论赛
添加者提取的tags是:五邑大学 第十四届辩论赛 赛徽 辩题
这四个tag就放在news_tags里边。
插入这个文章的代码实现上有四个过程,后边三个用事务实现就是了:
单个tag是否存在(已经存在就跳过最后一步的单个tag插入),文章插入(news),tag和文章连接的插入(news_tags_link),news_tags还不存在的单个tag插入
3.数据修改
修改这个文章就只是需要加多一个删除原来的news_tags_link就可以了。
代码实现上有五个过程,后边四个是用事务来实现:
单个tag是否存在(已经存在就跳过最后一步的单个tag插入),文章插入(news),删除所有的与该文章相关的news_tags_link,tags和文章连接管理的插入(news_tags_link),news_tags的单个tag插入
很容易看到,这个方法没有删除news_tags中多余的tag(在news修改时候删除的tags)。
不好意思,文章乱乱的。希望能看明白。
原文引用于:http://www.cnblogs.com/catcn/archive/2007/03/20/my_dotnet_tags.html
Tag标签: tag,tags,实现