国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Wordpress數(shù)據(jù)庫結(jié)構(gòu)分析 | 錢本草

Wordpress數(shù)據(jù)庫結(jié)構(gòu)分析

    最近在家里無聊突然有個想法,使用java開發(fā)一個wordpress的博客系統(tǒng)暫且就起個名字叫J-blog系統(tǒng)(爪哇閣)有興趣的朋友可以一起加入這個項目哈!首先要來分析下wordpress的數(shù)據(jù)庫結(jié)構(gòu) 找了一下午的資料終于看見個比較合適的就拿來了。

數(shù)據(jù)表的總體結(jié)構(gòu)如下圖(為了節(jié)約篇幅,這里僅列出了主鍵、外鍵及某些字段):

wordpress僅僅用了 10 個 Table就實現(xiàn)了這么強(qiáng)大的系統(tǒng),讓我欽佩:

    wp_comments
    wp_links
    wp_options
    wp_postmeta
    wp_posts
    wp_term_relationships
    wp_term_taxonomy
    wp_terms
    wp_usermeta
    wp_users

下面我們按照它們之間的關(guān)系來介紹一下這幾個表:

按照功能大致分為五類。

  • user: 用戶信息,包括wp_users表和wp_usermeta表。
  • link:鏈接信息,包括wp_links表。
  • post: 文章及評論信息,包括wp_posts、wp_postmeta、wp_comments。
  • category,link_category,tag:這個是比較復(fù)雜的信息模塊,它包含了對分類,鏈接分類,標(biāo)簽的管理,包括wp_term,wp_term_relationships和wp_term_taxonomy表。
  • option: 全局設(shè)置信息,包括wp_options表。 

wp_posts
作為一個博客系統(tǒng),最核心的當(dāng)然是博主發(fā)表的一些“文章”了,這些“文章”存放的地方就是這個 wp_posts 表了。注意,這里所說的“文章”是加引號的,因為這個表里存放的除了普通的文章之外,還有附件和頁面(page)的一些信息。表里面的 post_type 這個字段就是用來標(biāo)示類型的。還有一點需要注意的就是,這個表里一些字段是針對于 post_type 的特定類型的,比如 menu_order 這個字段是“頁面(page)”特有的,用來指定“頁面”的順序。post_mime_type 是針對附件的,來指定附件的類型。

wp_postmeta
每篇文章的屬性是不可能僅僅用 wp_posts 表里的那幾個字段來完全標(biāo)示的,往往還有一些因人而異的屬性:寫這篇文章時候的心情,地點等等。這些屬性的名稱和值類型都是不確定的,因此,Wordpress 采用了元信息(meta)來表示它們。這個表很簡單,只有 meta_id, post_id, meta_key, meta_value 這四個字段。post_id 是相關(guān) post 的 id。我們注意到 meta_value 是 longtext 類型的,這里僅是用來存儲值,至于值的確切類型,需要程序員來關(guān)心。
在撰寫文章的時候,我們可以發(fā)現(xiàn)編輯框下面有一個 Custom Fields 的選項,我們可以在這里添加 post 的 meta 信息。

wp_comments
用戶評論。除了評論的內(nèi)容以外,還記錄了評論用戶的名字,郵箱,網(wǎng)址,瀏覽器類型等信息。比較重要的兩個字段是 comment_post_ID 和 comment_approved,前一個用來指示這條評論隸屬于哪一篇文章,后一個用來記錄審核狀況。還有一個比較有意思的是這個 commnet_agent 字段,我們可以利用這個字段來統(tǒng)計一下用戶瀏覽器類型。

wp_users
用戶賬號表。存儲用戶名、密碼還有一些用戶的基本信息。

wp_usermeta
類似上面的 wp_postmeta,存儲一些因人而異的用戶信息。(比如QQ?ICQ?)

wp_options
用來記錄 Wordpress 的一些設(shè)置和選項。里面有一個 blog_id 字段,這個應(yīng)該是用在 MU 版里面來標(biāo)示不同的 Blog 的。

wp_links
用來存儲 Blogroll 里面的鏈接。

wp_terms
wp_term_relationships
wp_term_taxonomy

這三個表是這里面關(guān)系最復(fù)雜的了,在 Wordpress 2.2 及以前的版本中是沒有這三個表的,代之的是 wp_categories、wp_post2cat 和 wp_link2cat 這三個表。對比這兩個版本我們可以發(fā)現(xiàn):在 2.2 版和之前的版本,post 和 link 和 category 的關(guān)系都是通過各自單獨的表來記錄的。而在 2.3 版中加入了 tag 的支持,Wordpress 把 post、link、tag 的分類都抽象成了統(tǒng)一的形式,用新的三個表來記錄這些信息。
wp_terms
記錄分類,鏈接分類,標(biāo)簽的一些簡要信息,包括名稱,縮寫。

wp_term_taxonomy
是對wp_terms中的信息的關(guān)系信息補(bǔ)充,有所屬類型(category,link_category,tag),詳細(xì)描述,父類,所擁有文章(鏈接)數(shù)量。

wp_term_relationships
關(guān)系表,多對多的,object_id是與不同的對象關(guān)聯(lián),例如wp_posts中的ID(wp_links中的link_id)等,term_taxonomy_id就是關(guān)聯(lián)wp_term_taxonomy中的term_taxonomy_id。

還有一些字段我還不太清楚是有什么用的,例如:
wp_term_relationships中的term_order;
wp_terms中的term_group,wp_option中的一些值作用等等,在以后學(xué)習(xí)的過程中再作詳細(xì)的講解吧,如果大家知道的,也可以告訴我。

在其他的文章中我看到有說虛表的,而且我在wpdb這個類中也看到了這樣的聲明:
// Our tables
var $posts;
var $users;
var $categories;
var $post2cat;
var $comments;
var $links;
var $options;
var $postmeta;
var $usermeta;
var $terms;
var $term_taxonomy;
var $term_relationships;
var $tables = array('users', 'usermeta', 'posts', 'categories', 'post2cat', 'comments', 'links', 'link2cat', 'options',
'postmeta', 'terms', 'term_taxonomy', 'term_relationships');
不知道上面的'categories', 'post2cat','link2cat'是不是虛表,還是為了兼容以前的版本用的,大家有什么看法的都盡管說說吧。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
WordPress 數(shù)據(jù)庫SQL查詢語句總結(jié)
WordPress 技巧:批量刪除不用的標(biāo)簽
WordPress數(shù)據(jù)庫及各表結(jié)構(gòu)分析
WordPress如何清理數(shù)據(jù)庫
20個實用的WordPress SQL查詢
WordPress主題制作導(dǎo)航的N種方法
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服