在本專(zhuān)題前面的文章中,我為大家介紹了 WordPress 單站點(diǎn)數(shù)據(jù)庫(kù)中的每個(gè)數(shù)據(jù)表,以及他們是怎么交互的、數(shù)據(jù)表之前的關(guān)系、以及他們是怎么存儲(chǔ)的。在本文中,我們來(lái)一起看一下 WordPress 多站點(diǎn)網(wǎng)絡(luò)中的數(shù)據(jù)庫(kù),WordPress 多站點(diǎn)網(wǎng)絡(luò)中的數(shù)據(jù)庫(kù)會(huì)包含一些額外的數(shù)據(jù)表,多站點(diǎn)網(wǎng)絡(luò)中的每個(gè)網(wǎng)站都有自己獨(dú)有的數(shù)據(jù)表,要理解 WordPress 數(shù)據(jù)庫(kù)在多站點(diǎn)中的是什么樣子的,我們需要了解三種類(lèi)型的數(shù)據(jù)表。
- 核心站點(diǎn)中的數(shù)據(jù)庫(kù)
- 整個(gè)網(wǎng)絡(luò)的數(shù)據(jù)庫(kù)
- 網(wǎng)絡(luò)中每個(gè)站點(diǎn)的數(shù)據(jù)庫(kù)
多站點(diǎn)模式中的主站點(diǎn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)表
多站點(diǎn)網(wǎng)絡(luò)中核心站點(diǎn)的數(shù)據(jù)庫(kù),有和單站點(diǎn)一樣的11個(gè)數(shù)據(jù)表,這些數(shù)據(jù)表中保存這主站點(diǎn)中的數(shù)據(jù):
- wp_posts
- wp_postmeta
- wp_comments
- wp_commentmeta
- wp_users
- wp_usermeta
- wp_links
- wp_term_relationships
- wp_term_taxonomy
- wp_terms
- wp_options
有兩個(gè)數(shù)據(jù)表和網(wǎng)絡(luò)中的其他站點(diǎn)有關(guān),他們是:
- wp_users
- wp_usermeta
其他數(shù)據(jù)表的工作方式和在單站點(diǎn)模式中一樣,他們存儲(chǔ)著主站點(diǎn)的內(nèi)容,最后兩個(gè)數(shù)據(jù)表同時(shí)存儲(chǔ)了和整個(gè)站點(diǎn)有關(guān)的數(shù)據(jù),就像只在主站點(diǎn)中使用的數(shù)據(jù)。
多站點(diǎn)模式中其他站點(diǎn)的數(shù)據(jù)表
除了存儲(chǔ)多站點(diǎn)網(wǎng)絡(luò)中用戶數(shù)據(jù)的兩個(gè)核心表,WordPress 還創(chuàng)建了一些關(guān)于多站點(diǎn)網(wǎng)絡(luò)的附加數(shù)據(jù)表,他們包括:
- wp_blogs
- wp_blog_versions
- wp_registration_log
- wp_signups
- wp_site
- wp_sitemeta
- wp_sitecategories (可選)
WordPress 使用一下7個(gè)數(shù)據(jù)表,外加兩個(gè)用戶數(shù)據(jù)表存儲(chǔ)多站點(diǎn)中的站點(diǎn)數(shù)據(jù),下面是這些數(shù)據(jù)表的簡(jiǎn)介:
| 數(shù)據(jù)表 | 數(shù)據(jù) | 說(shuō)明 |
|---|---|---|
| wp_blogs | 這個(gè)數(shù)據(jù)表存儲(chǔ)了站點(diǎn)中每個(gè)網(wǎng)站的信息,每個(gè)網(wǎng)站只有一條記錄 | 字段包括: blog_id, 域名,注冊(cè)時(shí)間 |
| wp_blog_versions | 當(dāng)前網(wǎng)絡(luò)的數(shù)據(jù)庫(kù)版本,升級(jí)網(wǎng)絡(luò)時(shí)會(huì)更新 | 包括三個(gè)字段: blog_id,db_version 和 last_updated |
| wp_registration_log | 創(chuàng)建站點(diǎn)時(shí)同時(shí)創(chuàng)建的管理員用戶 | 對(duì)每個(gè)站點(diǎn) ( 通過(guò)blog_id 定義 ),該表存儲(chǔ)博客管理員的 user_id,?email 地址和注冊(cè)日期 |
| wp_signups | 存儲(chǔ)已注冊(cè)但未激活的站點(diǎn) | 該數(shù)據(jù)表的每條記錄包含一個(gè)唯一的 signup_id,每條記錄中包含注冊(cè)站點(diǎn)的域名、標(biāo)題、用戶名、和電子郵件地址,站點(diǎn)激活時(shí),相應(yīng)記錄會(huì)自動(dòng)刪除 |
| wp_site | 存儲(chǔ)主站點(diǎn)的 URL | 此數(shù)據(jù)表只有一條記錄,包含3個(gè)字段:主站點(diǎn)的站點(diǎn) ID ( 一般是1 ), 主站點(diǎn)的域名和路徑 (默認(rèn)是 /) |
| wp_sitemeta | 存儲(chǔ)多站點(diǎn)網(wǎng)絡(luò)的附加信息 | 這個(gè)數(shù)據(jù)表相當(dāng)于多站點(diǎn)網(wǎng)絡(luò)的wp_options 數(shù)據(jù)表,包含網(wǎng)絡(luò)的一些設(shè)置數(shù)據(jù),該數(shù)據(jù)表包含4個(gè)字段: meta_id, site_id (鏈接到 wp_blogs), meta_key 和 meta_value。 |
| wp_sitecategories | 啟用了全局分類(lèi)時(shí)的可選數(shù)據(jù)表 | 啟用全局分類(lèi)可以讓每個(gè)站點(diǎn)中的用戶使用相同的分類(lèi),該數(shù)據(jù)表包含4個(gè)字段:cat_ID,cat_name,category_nicename 和 last_updated,注意該數(shù)據(jù)表存數(shù)分類(lèi)項(xiàng)目,不只是分類(lèi)目標(biāo)項(xiàng)目,還包括自定義分類(lèi)法 |
| wp_users | 所有用戶的數(shù)據(jù)在這里保存而不是保存在每個(gè)站點(diǎn)中,因此用戶可以訪問(wèn)整個(gè)站點(diǎn)中的網(wǎng)站 | 在多站點(diǎn)網(wǎng)絡(luò)的數(shù)據(jù)中,WordPress 在 wp_users 數(shù)據(jù)表中創(chuàng)建了兩個(gè)附加字段: spam 和 deleted, 兩個(gè)都是布爾值,默認(rèn)為 NO |
| wp_usermeta | 存儲(chǔ)站點(diǎn)中的用戶附加信息 | 該數(shù)據(jù)表的使用方法和單站點(diǎn)中的使用方法一樣 |
數(shù)據(jù)表的關(guān)系
因?yàn)檎军c(diǎn)中每個(gè)網(wǎng)站的數(shù)據(jù)需要關(guān)聯(lián)到站點(diǎn)的核心數(shù)據(jù)表,大多數(shù)數(shù)據(jù)表通過(guò) blog_ID 鏈接到 wp_blogs 數(shù)據(jù)表,以下3個(gè)例外:
- wp_sitecategories,鏈接文檔到分類(lèi)項(xiàng)目
- wp_signups, 已注冊(cè)未激活的網(wǎng)站
- wp_usermeta, 通過(guò) wp_users 迂回鏈接到 wp_blogs 數(shù)據(jù)表
WordPress多站點(diǎn)的數(shù)據(jù)庫(kù)
多站點(diǎn)數(shù)據(jù)庫(kù)存儲(chǔ)每個(gè)站點(diǎn)的方式非常簡(jiǎn)單粗暴,直接為每個(gè)站點(diǎn)復(fù)制了一份數(shù)據(jù)表,因?yàn)橛脩魯?shù)據(jù)存儲(chǔ)在主站的數(shù)據(jù)表中,創(chuàng)建站點(diǎn)數(shù)據(jù)表時(shí)并不會(huì)復(fù)制不必要的 wp_users 和 wp_usermeta,為了區(qū)分每個(gè)不同的子站點(diǎn),WordPress 為每個(gè)子站點(diǎn)的數(shù)據(jù)表的表名稱(chēng)添加了 site ID 字段,如站點(diǎn)2的數(shù)據(jù)表中, wp_posts 的數(shù)據(jù)表名稱(chēng)為 wp_2_posts,沒(méi)個(gè)子站點(diǎn)的包含以下幾個(gè)數(shù)據(jù)表。
- wp_xx_posts
- wp_xx_postmeta
- wp_xx_comments
- wp_xx_commentmeta
- wp_xx_links
- wp_xx_term_relationships
- wp_xx_term_taxonomy
- wp_xx_terms
- wp_xx_options
上面的 xx 就是每個(gè)子站點(diǎn)的站點(diǎn) ID,這些站點(diǎn)存儲(chǔ)數(shù)據(jù)的方式都和單站點(diǎn)的數(shù)據(jù)存儲(chǔ)方式一樣。
總結(jié)
如果你整準(zhǔn)備使用 WordPress 的多站點(diǎn)功能,詳細(xì)了解一下 WordPress 多站點(diǎn)的數(shù)據(jù)結(jié)構(gòu)是非常有必要的,這可以幫助我們更好的管理和維護(hù)一個(gè) WordPress 多站點(diǎn)網(wǎng)絡(luò),并在出現(xiàn)問(wèn)題時(shí),快速定位到有問(wèn)題的站點(diǎn),如果WordPress 多站點(diǎn)中默認(rèn)的數(shù)據(jù)結(jié)構(gòu)不符合我們的需求,我么也可以通過(guò) WordPress 的 Database API 增加自己的數(shù)據(jù)表。


