3種高效的Tags標簽體系數據庫設計計劃分享。本站提示廣大學習愛好者:(3種高效的Tags標簽體系數據庫設計計劃分享)文章只能為提供參考,不一定能成為您想要的結果。以下是3種高效的Tags標簽體系數據庫設計計劃分享正文
需求配景
今朝主流的博客體系、CMS都邑有一個TAG標簽體系,不只可讓內容鏈接的構造化加強,並且可讓文章依據Tag來辨別。比擬傳統老式的Keyword形式,這類Tag形式可以零丁的設計一個Map的映照表來增長體系的負載和查詢的效力。
數據庫設計計劃1
此計劃分為2個表:
1.Tag表
2.文章表
Tag表表構造:
tagid # tag標簽的ID
tagname #tag內容
num #以後Tag的援用個數
文章表構造:
ID #文章ID
title #文章題目
tags #tags列表,多個以,朋分
tagid #tags的ID 多個以,朋分
...
此種方法Tag標簽重要內容保留在 文章表 中,關於Tag表的壓力較小,只是添加的時刻更新一下Tag的援用數目,然則查詢的時刻效力缺乏,不是好方法
數據庫設計計劃2
第二種計劃應用2個Tag表,個中一個保留Tag信息,另外一個保留映照信息:
Tag表:
tagid # tag標簽的ID
tagname #tag內容
num #以後Tag的援用個數
Tagmap表
tagid
aid
文章表
ID #文章ID
title #文章題目
tags #tags列表,多個以,朋分
...
這類情勢,每次宣布內容和修正內容的時刻 都去更新一下Tag表和 Tagmap表。
查詢的時刻須要從Tagmap表中查找呼應的文章ID,然後應用文章ID去查詢詳細的文章信息,由於每次查詢都是應用索引,所以效力較高。
數據庫設計計劃3
前兩種計劃都是應用純潔的Mysql來設計的,第三種計劃將應用Nosql的魅力來設計。
根本構造同計劃2,只是在Tag表和Tagmap表中應用mongo/redis如許的nosql數據庫辦事器,如許可以施展nosql數據庫壯大的線性查詢才能。
1) 第一種方法的表構造設計與計劃2完整雷同,只是數據庫辦事器換了。
2)其他的計劃,固然是施展Nosql的線機能力來設計存儲的Key了,特別是應用redis的時刻,應用的Key的構造可以完善的進步查詢效力