Tags功能的實現

2021-04-13 01:57:31 字數 1897 閱讀 3935

看了jessezhao的web2.0裡面的tags功能的實現 (http://www.cnblogs.com/jessezhao/archive/2007/03/20/680520.html

)。於是把自己的tags實現也貼上來吧:

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)。

不好意思,文章亂亂的。希望能看明白。 

tag實際上就是把相關的日誌聯絡起來.比如過年的時候tag寫"高興,過年",過生日的時候寫"高興,生日",那麼點高興就可以連到這兩個日誌.  

實現起來不複雜  

以前寫過乙個部落格程式,下面是tag部分,不知道好不好看懂  

if   p_tags<>""   then  

tags=split(p_tags,",")  

for   i=0   to   ubound(tags)  

set   rs=conn.execute("select   tagid   from   tags   where   name='"&tags(i)&"'")  

if   rs.eof   then  

conn.execute("insert   into   tags   (name,addtagstyle)   values   ('"&tags(i)&"','"&request("ntagstyle")&"')")  

tag_t=conn.execute("select   top   1   tagid   from   tags   order   by   tagid   desc")(0)  

new_tag=new_tag   &   tags(i)   &   ","  

new_tagid=new_tagid   &   tag_t   &   ","  

else  

tag_t=rs(0)  

end   if  

conn.execute("insert   into   taglink   (tagid,fid)   values   ("&   tag_t   &","&   fid   &")")  

rs.close  

if   i=ubound(tags)   then  

tagidlist=tagidlist   &   tag_t  

else  

tagidlist=tagidlist   &   tag_t   &   ","  

end   if  

next  

end   if

我的Tags功能的實現

看了jessezhao的web2.0裡面的tags功能的實現 於是把自己的tags實現也貼上來吧 1.表的關係 2.資料插入 在文章表news裡邊有乙個欄位news tags,放置該文章的所有tags。比如乙個簡單的文章 五邑大學第十四屆辯論賽 新增者提取的tags是 五邑大學 第十四屆辯論賽 賽徽...

我的Tags功能的實現

1.表的關係 我是用三個表來實現的 乙個主的文章表,兩個tags的附加表。2.資料插入 在文章表news裡邊有乙個欄位news tags,放置該文章的所有tags。比如乙個簡單的文章 五邑大學第十四屆辯論賽 新增者提取的tags是 五邑大學 第十四屆辯論賽 賽徽 辯題 這四個tag就放在news t...

使用ctags生成tags,在vim中實現跳轉

安裝ctags sudo apt get install ctags生成tags 在函式源 的上級目錄 也不一定是上一級,在需要跳轉到的源 的目錄也可以,r會遞迴地尋找 執行 ctags r生成tags,將生成的tags的路徑新增到vim的配置檔案.vimrc中 vimrc可以在 目錄下自行建立 s...