成都網(wǎng)站優(yōu)化工作中,三種高效的Tags標(biāo)簽系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)方案

2022-07-02    分類(lèi): 網(wǎng)站建設(shè)

以下是成都網(wǎng)站優(yōu)化工作中,三種高效的Tags標(biāo)簽系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)方案。


需求背景


目前主流的博客系統(tǒng)、CMS都會(huì)有一個(gè)TAG標(biāo)簽系統(tǒng),不僅可以讓內(nèi)容鏈接的結(jié)構(gòu)化增強(qiáng),而且可以讓文章根據(jù)Tag來(lái)區(qū)分。相比傳統(tǒng)老式的Keyword模式,這種Tag模式可以單獨(dú)的設(shè)計(jì)一個(gè)Map的映射表來(lái)增加系統(tǒng)的負(fù)載和查詢(xún)的效率。


數(shù)據(jù)庫(kù)設(shè)計(jì)方案(1)


此方案分為2個(gè)表:


1.Tag表


2.文章表


Tag表表結(jié)構(gòu):代碼如下:


tagid # tag標(biāo)簽的IDtagname #tag內(nèi)容num #當(dāng)前Tag的引用個(gè)數(shù)


文章表結(jié)構(gòu):代碼如下:


ID #文章ID


title #文章標(biāo)題tags #tags列表,多個(gè)以,分割tagid #tags的ID 多個(gè)以,分割...


此種方式Tag標(biāo)簽主要內(nèi)容保存在 文章表 中,對(duì)于Tag表的壓力較小,只是添加的時(shí)候更新一下Tag的引用數(shù)量,但是查詢(xún)的時(shí)候效率不足,不是好辦法


數(shù)據(jù)庫(kù)設(shè)計(jì)方案(2)


第二種方案使用2個(gè)Tag表,其中一個(gè)保存Tag信息,另一個(gè)保存映射信息:


Tag表:代碼如下:


tagid # tag標(biāo)簽的IDtagname #tag內(nèi)容num #當(dāng)前Tag的引用個(gè)數(shù)


Tagmap表代碼如下:


tagidaid


文章表代碼如下:


ID #文章IDtitle #文章標(biāo)題tags #tags列表,多個(gè)以,分割...


這種形式,每次發(fā)布內(nèi)容和修改內(nèi)容的時(shí)候 都去更新一下Tag表和 Tagmap表。


查詢(xún)的時(shí)候需要從Tagmap表中查找響應(yīng)的文章ID,然后使用文章ID去查詢(xún)具體的文章信息,因?yàn)槊看尾樵?xún)都是使用索引,所以效率較高。


數(shù)據(jù)庫(kù)設(shè)計(jì)方案(3)


前兩種方案都是使用純粹的Mysql來(lái)設(shè)計(jì)的,第三種方案將使用Nosql的魅力來(lái)設(shè)計(jì)。


基本結(jié)構(gòu)同方案2,只是在Tag表和Tagmap表中使用mongo/redis這樣的nosql數(shù)據(jù)庫(kù)服務(wù)器,這樣可以發(fā)揮nosql數(shù)據(jù)庫(kù)強(qiáng)大的線(xiàn)性查詢(xún)能力。


1) 第一種方式的表結(jié)構(gòu)設(shè)計(jì)與方案2完全相同,只是數(shù)據(jù)庫(kù)服務(wù)器換了。


2)其他的方案,當(dāng)然是發(fā)揮Nosql的線(xiàn)性能力來(lái)設(shè)計(jì)存儲(chǔ)的Key了,尤其是使用redis的時(shí)候,使用的Key的結(jié)構(gòu)可以好的提高查詢(xún)效率


以上就是我們對(duì)成都網(wǎng)站優(yōu)化的一點(diǎn)經(jīng)驗(yàn)分享。

本文名稱(chēng):成都網(wǎng)站優(yōu)化工作中,三種高效的Tags標(biāo)簽系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)方案
當(dāng)前路徑:http://www.muchs.cn/news7/173857.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版網(wǎng)站策劃、品牌網(wǎng)站設(shè)計(jì)、服務(wù)器托管、用戶(hù)體驗(yàn)、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化