《MYSQL教程3種高效的Tags標(biāo)簽系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)方案分享》要點(diǎn):
本文介紹了MYSQL教程3種高效的Tags標(biāo)簽系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)方案分享,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
需求背景MYSQL入門
目前主流的博客系統(tǒng)、CMS都會(huì)有一個(gè)TAG標(biāo)簽系統(tǒng),不僅可以讓內(nèi)容鏈接的結(jié)構(gòu)化增強(qiáng),而且可以讓文章根據(jù)Tag來區(qū)分.相比傳統(tǒng)老式的Keyword模式,這種Tag模式可以單獨(dú)的設(shè)計(jì)一個(gè)Map的映射表來增加系統(tǒng)的負(fù)載和查詢的效率.MYSQL入門
數(shù)據(jù)庫(kù)設(shè)計(jì)方案1MYSQL入門
此方案分為2個(gè)表:MYSQL入門
1.Tag表
2.文章表MYSQL入門
Tag表表結(jié)構(gòu):
MYSQL入門
此種方式Tag標(biāo)簽主要內(nèi)容保存在 文章表 中,對(duì)于Tag表的壓力較小,只是添加的時(shí)候更新一下Tag的引用數(shù)量,但是查詢的時(shí)候效率不足,不是好辦法MYSQL入門
數(shù)據(jù)庫(kù)設(shè)計(jì)方案2MYSQL入門
第二種方案使用2個(gè)Tag表,其中一個(gè)保存Tag信息,另一個(gè)保存映射信息:MYSQL入門
Tag表:
MYSQL入門
這種形式,每次發(fā)布內(nèi)容和修改內(nèi)容的時(shí)候 都去更新一下Tag表和 Tagmap表.MYSQL入門
查詢的時(shí)候需要從Tagmap表中查找響應(yīng)的文章ID,然后使用文章ID去查詢具體的文章信息,因?yàn)槊看尾樵兌际鞘褂盟饕?所以效率較高.MYSQL入門
數(shù)據(jù)庫(kù)設(shè)計(jì)方案3MYSQL入門
前兩種方案都是使用純粹的Mysql來設(shè)計(jì)的,第三種方案將使用Nosql的魅力來設(shè)計(jì).MYSQL入門
基本結(jié)構(gòu)同方案2,只是在Tag表和Tagmap表中使用mongo/redis這樣的nosql數(shù)據(jù)庫(kù)服務(wù)器,這樣可以發(fā)揮nosql數(shù)據(jù)庫(kù)強(qiáng)大的線性查詢能力.MYSQL入門
1) 第一種方式的表結(jié)構(gòu)設(shè)計(jì)與方案2完全相同,只是數(shù)據(jù)庫(kù)服務(wù)器換了.MYSQL入門
2)其他的方案,當(dāng)然是發(fā)揮Nosql的線性能力來設(shè)計(jì)存儲(chǔ)的Key了,尤其是使用redis的時(shí)候,使用的Key的結(jié)構(gòu)可以完美的提高查詢效率
MYSQL入門
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/4914.html