黄视频网站在线免费观看-黄视频网站在线看-黄视频网站在线观看-黄视频网站免费看-黄视频网站免费观看-黄视频网站免费

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > mysql怎么設計才能讓一個文章對應多個tag?

mysql怎么設計才能讓一個文章對應多個tag?

來源:千鋒教育
發布人:xqq
時間: 2023-10-13 20:41:39 1697200899

一、mysql讓一個文章對應多個tag的設計方法

要讓一篇文章可以對應多個tag,通常需要設計一個多對多的關系,這可以通過引入一個中間表來實現。

具體來說,將文章和標簽分別看作兩個實體,通過一個中間表來建立它們之間的多對多關系。中間表包含兩個外鍵,分別指向文章和標簽表中對應的記錄。每當一篇文章與一個或多個標簽產生關聯時,就在中間表中插入相應的記錄,同時記錄對應的文章ID和標簽ID。

這樣設計的好處是,可以輕松地查詢某個標簽下的所有文章,也可以方便地查找某篇文章所對應的所有標簽。如果需要添加或刪除文章與標簽之間的關系,只需在中間表中插入或刪除記錄即可,不會對文章或標簽本身造成影響。

以下是一個簡單的MySQL代碼示例:

CREATE TABLE articles (  id INT NOT NULL AUTO_INCREMENT,  title VARCHAR(100) NOT NULL,  content TEXT NOT NULL,  PRIMARY KEY (id));CREATE TABLE tags (  id INT NOT NULL AUTO_INCREMENT,  name VARCHAR(50) NOT NULL,  PRIMARY KEY (id));CREATE TABLE article_tags (  article_id INT NOT NULL,  tag_id INT NOT NULL,  FOREIGN KEY (article_id) REFERENCES articles(id),  FOREIGN KEY (tag_id) REFERENCES tags(id));

其中:

articles表:存儲文章的基本信息;tags表:存儲標簽的名稱;article_tags表:作為中間表,建立文章和標簽之間的多對多關系。

二、3種高效的Tags標簽系統數據庫設計方案

目前主流的博客系統、CMS都會有一個TAG標簽系統,不僅可以讓內容鏈接的結構化增強,而且可以讓文章根據Tag來區分。相比傳統老式的Keyword模式,這種Tag模式可以單獨的設計一個Map的映射表來增加系統的負載和查詢的效率。

1、數據庫設計方案1

此方案分為2個表:

Tag表文章表

Tag表表結構代碼如下:

tagid # tag標簽的ID
tagname #tag內容
num #當前Tag的引用個數

文章表結構代碼如下:

ID #文章ID
title #文章標題
tags #tags列表,多個以,分割
tagid #tags的ID 多個以,分割

此種方式Tag標簽主要內容保存在文章表中,對于Tag表的壓力較小,只是添加的時候更新一下Tag的引用數量,但是查詢的時候效率不足,不是好辦法。

2、數據庫設計方案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、數據庫設計方案3

前兩種方案都是使用純粹的Mysql來設計的,第三種方案將使用Nosql的魅力來設計。基本結構同方案2,只是在Tag表和Tagmap表中使用mongo/redis這樣的nosql數據庫服務器,這樣可以發揮nosql數據庫強大的線性查詢能力。

三、MySQL數據庫設計規范

1、數據命名規范

所有數據庫對象名稱必須使用小寫字母并用下劃線分割。所有數據庫對象名稱禁止使用 MySQL 保留關鍵字(如果表名中包含關鍵字查詢時,需要將其用單引號括起來)。數據庫對象的命名要能做到見名識意,并且最后不要超過 32 個字符。臨時庫表必須以 tmp?為前綴并以日期為后綴,備份表必須以 bak?為前綴并以日期 (時間戳) 為后綴。所有存儲相同數據的列名和列類型必須一致(一般作為關聯列,如果查詢時關聯列類型不一致會自動進行數據類型隱式轉換,會造成列上的索引失效,導致查詢效率降低)。

2、數據庫基本設計規范

所有表必須使用 InnoDB 存儲引擎:沒有特殊要求(即 InnoDB 無法滿足的功能如:列存儲,存儲空間數據等)的情況下,所有表必須使用 InnoDB 存儲引擎 MySQL 5.5 之前默認使用 Myisam,5.6 以后默認的為 InnoDBInnoDB 支持事務,支持行級鎖,更好的恢復性,高并發下性能更好。數據庫和表的字符集統一使用 UTF8MB4:兼容性更好,統一字符集可以避免由于字符集轉換產生的亂碼,不同的字符集進行比較前需要進行轉換會造成索引失效。所有表和字段都需要添加注釋:使用 comment 從句添加表和列的備注,從一開始就進行數據字典的維護。盡量控制單表數據量的大小,建議控制在 500 萬以內:500 萬并不是 MySQL 數據庫的限制,過大會造成修改表結構、備份、恢復都會有很大的問題,可以用歷史數據歸檔(應用于日志數據),分庫分表(應用于業務數據)等手段來控制數據量大小。謹慎使用 MySQL 分區表:分區表在物理上表現為多個文件,在邏輯上表現為一個表。謹慎選擇分區鍵,跨分區查詢效率可能更低。建議采用物理分表的方式管理大數據。盡量做到冷熱數據分離,減小表的寬度:MySQL 限制每個表非常多存儲 4096 列,并且每一行數據的大小不能超過 65535 字節。減少磁盤 IO,保證熱數據的內存緩存命中率(表越寬,把表裝載進內存緩沖池時所占用的內存也就越大,也會消耗更多的 IO)。更有效的利用緩存,避免讀入無用的冷數據。經常一起使用的列放到一個表中(避免更多的關聯操作)。禁止在表中建立預留字段:預留字段的命名很難做到見名識義。預留字段無法確認存儲的數據類型,所以無法選擇合適的類型。對預留字段類型的修改,會對表進行鎖定。禁止在數據庫中存儲圖片,文件等大的二進制數據:通常文件很大,會短時間內造成數據量快速增長,數據庫進行數據庫讀取時,通常會進行大量的隨機 IO 操作,文件很大時,IO 操作很耗時。通常存儲于文件服務器,數據庫只存儲文件地址信息。

延伸閱讀1:MySQL是什么

MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB 公司開發,屬于 Oracle 旗下產品。MySQL 是最流行的關系型數據庫管理系統之一,在 WEB 應用方面,MySQL是較好的 RDBMS(Relational Database Management System,關系數據庫管理系統)應用軟件之一。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
久草免费在线视频| 国产视频一区二区在线观看| 99久久精品国产麻豆| 久草免费在线视频| 欧美激情影院| 欧美国产日韩一区二区三区| 九九精品影院| 亚久久伊人精品青青草原2020| 香蕉视频久久| 成人高清护士在线播放| 一级女性全黄久久生活片| 国产a视频| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产韩国精品一区二区三区| 夜夜操网| 韩国三级香港三级日本三级la | 国产91精品系列在线观看| 国产亚洲男人的天堂在线观看| 麻豆系列 在线视频| 超级乱淫伦动漫| 精品在线观看国产| 青青久久网| 999久久狠狠免费精品| 在线观看成人网| 亚久久伊人精品青青草原2020| 黄视频网站免费看| 精品视频一区二区三区免费| 国产麻豆精品高清在线播放| 国产成人精品综合久久久| 精品久久久久久中文字幕一区| 韩国三级视频网站| 欧美电影免费| 在线观看成人网 | 日韩免费在线观看视频| 精品在线视频播放| 深夜做爰性大片中文| 99久久视频| 国产不卡高清| 欧美激情一区二区三区视频| 九九精品影院| 一 级 黄 中国色 片| 天天做日日爱| 亚洲爆爽| 国产不卡在线看| 日本在线不卡视频| 天天做日日爱| 久草免费在线色站| 麻豆污视频| 国产a视频| 成人在免费观看视频国产| 日韩av片免费播放| 日韩中文字幕一区| 国产福利免费观看| 国产原创中文字幕| 亚久久伊人精品青青草原2020| 天天色成人网| 国产视频一区二区在线播放| 高清一级淫片a级中文字幕| 国产一级强片在线观看| 国产麻豆精品视频| 日韩在线观看免费| 国产一区二区精品在线观看| 国产网站免费视频| 日韩在线观看网站| 精品久久久久久中文字幕一区| 成人av在线播放| 成人影视在线观看| 国产麻豆精品hdvideoss| 日本在线www| 久久国产精品只做精品| 国产一级强片在线观看| 久久久成人网| 美女免费精品视频在线观看| 国产精品自拍在线观看| 欧美国产日韩在线| 免费国产在线视频| 国产综合成人观看在线| 日韩专区一区| 国产a毛片| 青青青草影院| 国产不卡精品一区二区三区| 免费国产在线观看| 青青久久网| 欧美1区| 色综合久久天天综线观看 | 午夜欧美成人久久久久久| 97视频免费在线观看| 沈樵在线观看福利| 久久精品成人一区二区三区| 成人高清免费| 中文字幕97| 青青久久精品| 一级片片| 国产不卡福利| 国产视频一区二区在线观看 | 国产亚洲男人的天堂在线观看| 日韩专区一区| 国产欧美精品| 四虎久久精品国产| 99久久精品费精品国产一区二区| 久久国产一区二区| 黄视频网站免费| 999久久久免费精品国产牛牛| 精品国产一区二区三区精东影业| 毛片成人永久免费视频| 亚洲第一色在线| 免费一级片在线观看| 国产精品自拍亚洲| 成人免费网站视频ww| 精品久久久久久综合网| 成人a大片高清在线观看| 欧美1区| 青青青草影院| 亚洲爆爽| 欧美一级视频免费| 国产精品自拍一区| 成人影视在线观看| 91麻豆tv| 精品国产一级毛片| 中文字幕97| 国产不卡在线观看视频| 九九精品久久| 国产亚洲精品aaa大片| 香蕉视频亚洲一级| 久久精品店| a级黄色毛片免费播放视频| 亚欧视频在线| 国产成人啪精品| 国产网站在线| 成人av在线播放| 国产91丝袜在线播放0| 日日夜人人澡人人澡人人看免| 黄色短视频网站| 亚洲精品久久久中文字| 欧美大片毛片aaa免费看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 久久成人综合网| 黄视频网站在线观看| 99色播| 久久成人综合网| 97视频免费在线观看| 麻豆系列 在线视频| 亚欧乱色一区二区三区| 国产麻豆精品| 精品视频在线观看一区二区三区| 999久久久免费精品国产牛牛| 日本在线不卡视频| 成人a大片高清在线观看| 国产欧美精品午夜在线播放| 黄色福利| 九九久久国产精品| 国产一区二区精品久久91| 亚洲女初尝黑人巨高清在线观看| 韩国三级视频在线观看| 欧美大片aaaa一级毛片| 国产不卡在线看| 黄视频网站免费| 欧美一级视| 国产麻豆精品| 成人免费一级纶理片| 黄视频网站在线观看| 九九精品久久| 精品久久久久久免费影院| 99久久精品国产高清一区二区| 成人免费福利片在线观看| 成人a级高清视频在线观看| 久久99中文字幕| 九九精品影院| 欧美另类videosbestsex高清 | 日本特黄特色aaa大片免费| 精品久久久久久免费影院| 香蕉视频久久| 国产伦精品一区二区三区无广告 | 毛片高清| 在线观看成人网 | 韩国三级香港三级日本三级| 日韩一级黄色大片| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 天天做日日爱| a级精品九九九大片免费看| 精品视频在线观看视频免费视频| 韩国毛片免费大片| 国产麻豆精品hdvideoss| 国产91精品一区二区| 国产欧美精品午夜在线播放| 国产a视频| 国产一级强片在线观看| 欧美日本二区| 精品在线观看一区| 黄色福利片| 亚洲精品永久一区| 成人免费网站视频ww| 一 级 黄 中国色 片| 天堂网中文在线| 国产网站免费| 美女免费黄网站| 999精品在线| 999精品影视在线观看| 一级片片| 国产一区二区精品在线观看|