天天看點

wordpress源碼解析-資料庫表結構(轉)

如果是一個普通的使用者,不需要了解wordpress資料庫的結構。但是,如果你正在寫一個插件,你應該會對wordpress如何處理它的資料和關系感興趣。如果你已經嘗試使用已經存在的wordpress api 去通路你需要的資料,但不直接通路資料庫的情況下,這是不可能的,WordPress的提供WPDB的類,使這項任務變得簡單。

WordPress資料庫的11個資料表分别是:

表名(點選表名檢視詳細介紹)

描述

wp_commentmeta

文章評論額外資訊表

wp_comments

文章評論資訊表

wp_links

連結資訊表

wp_options

基本配置資訊表,通常通過get_option來操作,該表通常作為插件存儲資料的一個地方。

wp_postmeta

文章額外資料表,例如文章浏覽次數,文章的自定義字段等都存儲在這裡。

wp_posts

文章資訊表,包括了日志、附件、頁面等等資訊。是WordPress最重要的一個資料表。

wp_terms

文章分類、連結分類、标簽的資訊表。

wp_term_relationships

分類與文章資訊表(wp_posts)、連結表(wp_links)的關聯表。

wp_term_taxonomy

分類資訊表,區分wp_terms資訊的分類類型,有category、link_category和tag三種分類類型。

wp_usermeta

使用者額外資訊表

wp_users

使用者基本資訊表。存放系統所有使用者基本資訊。

WordPress資料庫表之間的關系是什麼呢?

要搞明白這個問題以及對WordPress資料表之間的關系有更加深刻的了解,讓我們先來想想WordPress部落格系統的功能,預設安裝的WordPress2.6.2版本部落格系統涉及的資料資訊主要包括了使用者資訊、分類資訊、連結資訊、文章資訊、文章評論資訊、基本配置資訊這6類資訊。

使用者資訊:系統中所有注冊使用者的帳号資訊。

分類資訊:包括了文章分類、連結分類、标簽這3中分類資訊。

連結資訊:就是部落格系統中的友情連結資訊。

文章資訊:部落格系統中的日志、日志産生的附件、頁面等資訊。

文章評論資訊:對具體日志或者附件的評論資訊。

基本配置資訊:系統中的基本配置資訊,例如部落格名稱,部落格位址等等。

WordPress資料庫的11個資料表就是為了存儲以上6類資料資訊而設計,這些表之間的總體關系結構如下圖所示:

wordpress源碼解析-資料庫表結構(轉)

從上圖可以看出WordPress部落格系統6類資料資訊分别所涉及的資料表及關系如下表所示:

資訊類型

涉及資料表及關聯關系

使用者資訊

資料表:wp_users、wp_usermeta,關聯關系:wp_users.ID->wp_usermeta.user_id

分類資訊

資料表:wp_terms、wp_term_taxonomy關聯關系:wp_terms.term_id->wp_term_taxonomy.term_id

連結資訊

資料表:wp_links、wp_term_relationships、wp_terms、wp_term_taxonomy、 wp_users、wp_usermeta關聯關系:

一,确定連結所屬分類 (1)wp_links.link_id->wp_term_relationships.object_id, (2)wp_term_relationships.term_taxonomy_id->wp_term_taxonomy.term_taxonomy_id

(該關系還要取決與wp_term_taxonomy表中的taxonomy分類類型為“link_category”) (3)wp_terms.term_id->wp_term_taxonom.term_id

二、确定連結所有者 (4)wp_links.link_owner->wp_users.ID(5)wp_users.ID->wp_usermeta.user_id

文章資訊

資料表:wp_posts、wp_postmeta、wp_comments、wp_term_relationships、wp_terms、 wp_term_taxonomy、wp_users、wp_usermeta關聯關系:一、确定文章資訊 (1)wp_posts.ID->wp_postsmeta.post_id

二、确定文章評論 (2)wp_posts.ID->wp_comments.comment_post_id

三、确定文章評論的作者 (3)wp_comments.comment_author->wp_users.ID

(4)wp_users.ID->wp_usermeta.user_id

四、确定文章所屬分類

(5)wp_posts.ID->wp_term_relationships.object_id,

(6)wp_term_relationships.term_taxonomy_id->wp_term_taxonomy.term_taxonomy_id

(該關系還要取決與wp_term_taxonomy表中的taxonomy分類類型為“category”或者“tag”)

(7)wp_terms->term_id->wp_term_taxonomy

五、确定文章作者

(8)wp_posts.author->wp_users.ID;

(9)wp_users.ID->wp_usermeta.user_id

文章評論資訊

資料表:wp_comments、wp_posts、wp_users、wp_usermeta關聯關系:

一、确定評論的文章 (1)wp_comments.comment_post_id->wp_posts.ID

二、确定評論的作者 (2)wp_comments.comment_author->wp_users.ID(3)wp_users.ID->wp_usermeta.user_id

基本配置資訊

資料表:wp_options沒有關聯關系

Wp-config.php中關于資料庫的設定。

<a></a>

wp-db.php 包含一個wpdb的類,是資料庫操作API 。産生一個$wpdb的全局變量,是wpdb類的一個對象。挺長的,貼在文章裡太臃腫了。

參考:

<a href="http://wenku.baidu.com/view/6448da5bbe23482fb4da4c94.html?from_page=view&amp;from_mod=download">http://wenku.baidu.com/view/6448da5bbe23482fb4da4c94.html?from_page=view&amp;from_mod=download</a>

<a href="http://codex.wordpress.org/Database_Description">http://codex.wordpress.org/Database_Description</a>

<a href="http://codex.wordpress.org/Database_Description">http://codex.wordpress.org/Function_Reference/wpdb_Class</a>

<a href="http://www.jakc.net/post/272">http://www.jakc.net/post/272</a>

本文轉自黃聰部落格園部落格,原文連結:http://www.cnblogs.com/huangcong/p/4740900.html,如需轉載請自行聯系原作者