1.表的關(guān)系
我是用三個表來實現(xiàn)的:一個主的文章表,兩個tags的附加表。
2.數(shù)據(jù)插入
在文章表news里邊有一個字段news_tags,放置該文章的所有tags。
比如一個簡單的文章:五邑大學(xué)第十四屆辯論賽
添加者提取的tags是:五邑大學(xué) 第十四屆辯論賽 賽徽 辯題
這四個tag就放在news_tags里邊。
插入這個文章的代碼實現(xiàn)上有四個過程,后邊三個用事務(wù)實現(xiàn)就是了:
單個tag是否存在(已經(jīng)存在就跳過最后一步的單個tag插入),文章插入(news),tag和文章連接的插入(news_tags_link),news_tags還不存在的單個tag插入
3.數(shù)據(jù)修改
修改這個文章就只是需要加多一個刪除原來的news_tags_link就可以了。
代碼實現(xiàn)上有五個過程,后邊四個是用事務(wù)來實現(xiàn):
單個tag是否存在(已經(jīng)存在就跳過最后一步的單個tag插入),文章插入(news),刪除所有的與該文章相關(guān)的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標(biāo)簽: tag,tags,實現(xiàn)