以下是在WordPress3.0版本标准安装过程中所创建的数据库表的大纲和描述。目前,WordPress3.0仅支持 MySQL 4.1.2及更高版本的数据库。
参见:
由于WordPress自己与数据库接口,作为终端用户,不必过分担心它的结构。而如果你是在编写插件,你也许会对学习如何直接与数据库接口感兴趣。WordPress提供了wpdb类简化了这一过程。
数据库图表
下面的图表提供了一个图形化的WordPress数据库概览,以及在WordPress(WordPress2.5+)标准安装过程中创建的表之间的关系。以下的数据表概览包含了表和列的额外详细说明。
(WP 3.0 Database diagram)
请注意,在wp的标准安装过程中表之间的完整性不是强制性的,比如文章和评论之间。如果你正在创建操作数据库的插件或扩展,你的代码应该做些清理工
作,以便没有无用的记录留在表里。比如当外键被删除时,使用一个SQL命令集来删除其它表中的数据(不要忘记提醒用户,在进行此类操作前进行备份)。
表概述
这一节是在wp标准安装过程中创建的所有数据表的概述。详细内容在以下各表中。
表详细资料
以下是在wp标准安装过程中创建的数据表每个字段的详细信息。
Table: wp_commentmeta
Field | Type | Null | Key | Default | Extra |
meta_id |
bigint(20) unsigned |
|
PRI |
NULL |
auto_increment |
comment_id |
bigint(20) unsigned |
|
IND |
0 |
FK->wp_comments.comment_id |
meta_key |
varchar(255) |
YES |
IND |
NULL |
|
meta_value |
longtext |
YES |
|
NULL |
|
Indexes
Keyname | Type | Cardinality | Field |
PRIMARY |
PRIMARY |
0 |
meta_ID |
comment_id |
INDEX |
none |
comment_id |
meta_key |
INDEX |
none |
meta_key |
Table: wp_comments
Field | Type | Null | Key | Default | Extra |
comment_ID |
bigint(20) unsigned |
|
PRI |
NULL |
auto_increment |
comment_post_ID |
bigint(20) unsigned |
|
IND |
0 |
FK->wp_posts.ID |
comment_author |
tinytext |
|
|
|
|
comment_author_email |
varchar(100) |
|
|
|
|
comment_author_url |
varchar(200) |
|
|
|
|
comment_author_IP |
varchar(100) |
|
|
|
|
comment_date |
datetime |
|
|
0000-00-00 00:00:00 |
|
comment_date_gmt |
datetime |
|
IND & IND Pt2 |
0000-00-00 00:00:00 |
|
comment_content |
text |
|
|
|
|
comment_karma |
int(11) |
|
|
0 |
|
comment_approved |
varchar(20) |
|
IND & Ind Pt1 |
1 |
|
comment_agent |
varchar(255) |
|
|
|
|
comment_type |
varchar(20) |
|
|
|
|
comment_parent |
bigint(20) unsigned |
|
|
0 |
FK->wp_comments.ID |
user_id |
bigint(20) unsigned |
|
|
0 |
FK->wp_users.ID |
Indexes
Keyname | Type | Cardinality | Field |
PRIMARY |
PRIMARY |
1 |
comment_ID |
comment_approved |
INDEX |
None |
comment_approved |
comment_post_ID |
INDEX |
None |
comment_post_ID |
comment_approved_date_gmt |
INDEX |
None |
comment_approved comment_date_gmt |
comment_date_gmt |
INDEX |
None |
comment_date_gmt |
comment_parent |
INDEX |
None |
comment_parent |
Table: wp_links
Field | Type | Null | Key | Default | Extra |
link_id |
bigint(20) unsigned |
|
PRI |
NULL |
auto_increment |
link_url |
varchar(255) |
|
|
|
|
link_name |
varchar(255) |
|
|
|
|
link_image |
varchar(255) |
|
|
|
|
link_target |
varchar(25) |
|
|
|
|
link_description |
varchar(255) |
|
|
|
|
link_visible |
varchar(20) |
|
IND |
Y |
|
link_owner |
bigint(20) unsigned |
|
|
1 |
|
link_rating |
int(11) |
|
|
0 |
|
link_updated |
datetime |
|
|
0000-00-00 00:00:00 |
|
link_rel |
varchar(255) |
|
|
|
|
link_notes |
mediumtext |
|
|
|
|
link_rss |
varchar(255) |
|
|
|
|
Indexes
Keyname | Type | Cardinality | Field |
PRIMARY |
PRIMARY |
7 |
link_ID |
link_category |
INDEX |
None |
link_category |
link_visible |
INDEX |
None |
link_visible |
Table: wp_options
Field | Type | Null | Key | Default | Extra |
option_id |
bigint(20) unsigned |
|
PRI Pt1 |
NULL |
auto_increment |
blog_id |
int(11) |
|
PRI Pt2 |
0 |
|
option_name |
varchar(64) |
|
PRI Pt3 & IND |
|
|
option_value |
longtext |
|
|
|
|
autoload |
varchar(20) |
|
|
yes |
|
Indexes
Keyname | Type | Cardinality | Field |
PRIMARY |
PRIMARY |
184 |
option_id blog_id option_name |
option_name |
UNIQUE |
184 |
option_name |
Table: wp_postmeta
Field | Type | Null | Key | Default | Extra |
meta_id |
bigint(20) unsigned |
|
PRI |
NULL |
auto_increment |
post_id |
bigint(20) unsigned |
|
IND |
0 |
FK->wp_posts.ID |
meta_key |
varchar(255) |
YES |
IND |
NULL |
|
meta_value |
longtext |
YES |
|
NULL |
|
Indexes
Keyname | Type | Cardinality | Field |
PRIMARY |
PRIMARY |
13 |
meta_ID |
post_id |
INDEX |
15 |
post_id |
meta_key |
INDEX |
7 |
meta_key |
Table: wp_posts
Field | Type | Null | Key | Default | Extra |
ID |
bigint(20) unsigned |
|
PRI & IND Pt4 |
|
auto_increment |
post_author |
bigint(20) unsigned |
|
|
0 |
FK->wp_users.ID |
post_date |
datetime |
|
IND Pt3 |
0000-00-00 00:00:00 |
|
post_date_gmt |
datetime |
|
|
0000-00-00 00:00:00 |
|
post_content |
longtext |
|
|
|
|
post_title |
text |
|
|
|
|
post_excerpt |
text |
|
|
|
|
post_status |
varchar(20) |
|
IND PT2 |
publish |
|
comment_status |
varchar(20) |
|
|
open |
|
ping_status |
varchar(20) |
|
|
open |
|
post_password |
varchar(20) |
|
|
|
|
post_name |
varchar(200) |
|
IND |
|
|
to_ping |
text |
|
|
|
|
pinged |
text |
|
|
|
|
post_modified |
datetime |
|
|
0000-00-00 00:00:00 |
|
post_modified_gmt |
datetime |
|
|
0000-00-00 00:00:00 |
|
post_content_filtered |
text |
|
|
|
|
post_parent |
bigint(20) unsigned |
|
|
0 |
FK->wp_posts.ID |
guid |
varchar(255) |
|
|
|
|
menu_order |
int(11) |
|
|
0 |
|
post_type |
varchar(20) |
|
IND Pt1 |
post |
|
post_mime_type |
varchar(100) |
|
|
|
|
comment_count |
bigint(20) |
|
|
0 |
|
Indexes
Keyname | Type | Cardinality | Field |
PRIMARY |
PRIMARY |
2 |
ID |
post_name |
INDEX |
None |
post_name |
type_status_date |
INDEX |
None |
post_type post_status post_date ID |
post_parent |
INDEX |
None |
post_parent |
post_author |
INDEX |
None |
post_author |
Table: wp_terms
Field | Type | Null | Key | Default | Extra |
term_id |
bigint(20) unsigned |
|
PRI |
|
auto_increment |
name |
varchar(200) |
|
|
|
|
slug |
varchar(200) |
|
UNI |
|
|
term_group |
bigint(10) |
|
|
0 |
|
Indexes
Keyname | Type | Cardinality | Field |
PRIMARY |
PRIMARY |
2 |
term_ID |
slug |
UNIQUE |
2 |
slug |
name |
Index |
none |
name |
Table: wp_term_relationships
Field | Type | Null | Key | Default | Extra |
object_id |
bigint(20) unsigned |
|
PRI Pt1 |
0 |
|
term_taxonomy_id |
bigint(20) unsigned |
|
PRI Pt2 & IND |
0 |
FK->wp_term_taxonomy.term_taxonomy_id |
term_order |
int(11) |
|
|
0 |
|
Indexes
Keyname | Type | Cardinality | Field |
PRIMARY |
PRIMARY |
8 |
object_id term_taxonomy_id |
term_taxonomy_id |
INDEX |
None |
term_taxonomy_id |
Table: wp_term_taxonomy
Field | Type | Null | Key | Default | Extra |
term_taxonomy_id |
bigint(20) unsigned |
|
PRI |
|
auto_increment |
term_id |
bigint(20) unsigned |
|
UNI Pt1 |
0 |
FK->wp_terms.term_id |
taxonomy |
varchar(32) |
|
UNI Pt2 |
|
|
description |
longtext |
|
|
|
|
parent |
bigint(20) unsigned |
|
|
0 |
|
count |
bigint(20) |
|
|
0 |
|
Indexes
Keyname | Type | Cardinality | Field |
PRIMARY |
PRIMARY |
2 |
term_taxonomy_id |
term_id_taxonomy |
UNIQUE |
2 |
term_id taxonomy |
taxonomy |
INDEX |
None |
taxonomy |
Table: wp_usermeta
Field | Type | Null | Key | Default | Extra |
umeta_id |
bigint(20) unsigned |
|
PRI |
NULL |
auto_increment |
user_id |
bigint(20) unsigned |
|
|
'0' |
FK->wp_users.ID |
meta_key |
varchar(255) |
Yes |
IND |
NULL |
|
meta_value |
longtext |
Yes |
IND |
NULL |
|
Indexes
Keyname | Type | Cardinality | Field |
PRIMARY |
PRIMARY |
9 |
umeta_id |
user_id |
INDEX |
None |
user_id |
meta_key |
INDEX |
None |
meta_key |
Table: wp_users
Field | Type | Null | Key | Default | Extra |
ID |
bigint(20) unsigned |
|
PRI |
NULL |
auto_increment |
user_login |
varchar(60) |
|
IND |
|
|
user_pass |
varchar(64) |
|
|
|
|
user_nicename |
varchar(50) |
|
IND |
|
|
user_email |
varchar(100) |
|
|
|
|
user_url |
varchar(100) |
|
|
|
|
user_registered |
datetime |
|
|
0000-00-00 00:00:00 |
|
user_activation_key |
varchar(60) |
|
|
|
|
user_status |
int(11) |
|
|
0 |
|
display_name |
varchar(250) |
|
|
|
|
Indexes
Keyname | Type | Cardinality | Field |
PRIMARY |
PRIMARY |
1 |
ID |
user_login_key |
INDEX |
None |
user_login |
user_nicename |
INDEX |
None |
user_nicename |
多站点表概述
本部分是Wordpress的Multisite特性所建立的表的概述。这些表通过Administration > Tools > Network下的操作建立。
这些表被看作是全局多站点的表。
WordPress 3.0 Multisite Tables |
Table Name | Description | Relevant Area(s) of WordPress User Interface |
wp_blogs |
Each site created is stored in the table, wp_blogs. |
|
wp_blog_versions |
The current database version status of each site is maintained in the wp_blogs_versions table and is updated as each site is upgraded. |
|
wp_registration_log |
The wp_registration_log records the admin user created when each new site is created. |
|
wp_signups |
This table holds the user that have registered for a site via the login registration process. User registration is enable in Administration > Super Admin > Options. |
|
wp_site |
The wp_site table contains the main site address. |
|
wp_sitecategories |
If global terms (global_terms_enabled = true) are enabled for a site the wp_sitecategories table holds those terms. |
|
wp_sitemeta |
Each site features information called the site data and it is stored in wp_sitemeta. Various option information, including the site admin is kept in this table. |
|
wp_users |
The list of all users is maintained in table wp_users. Multisite add two fields not in the stand-alone version. |
|
wp_usermeta |
This table is not re-create for multisite, but meta data of users for each site are stored in wp_usermeta. |
|
Site Specific Tables |
The data of the main site are stored in existing unnumbered
tables. The data of additional sites are stored in new numbered tables. |
|
多站点表详细资料
The following describe the tables and fields created during the network installation. Note that a global set of tables is created upon creation of the network, and site-specific tables are established as each site is created.
Table: wp_blogs
Field | Type | Null | Key | Default | Extra |
blog_id |
bigint(20) unsigned |
|
PRI |
NULL |
auto_increment |
site_id |
bigint(20) unsigned |
|
IND |
0 |
|
domain |
varchar(200) |
NO |
|
0 |
|
path |
varchar(100) |
NO |
|
|
|
registered |
datetime |
NO |
|
0000-00-00 00:00:00 |
|
last_updated |
datetime |
NO |
|
0000-00-00 00:00:00 |
|
public |
tinyint(2) |
NO |
|
0 |
|
archived |
enum('0','1') |
NO |
|
0 |
|
mature |
tinyint(2) |
NO |
|
0 |
|
spam |
tinyint(2) |
NO |
|
0 |
|
deleted |
tinyint(2) |
NO |
|
0 |
|
lang_id |
int(11) |
NO |
|
0 |
|
Indexes
Keyname | Type | Cardinality | Field |
PRIMARY |
PRIMARY |
2 |
blog_id |
domain |
INDEX |
none |
domain(50),path(5) |
lang_id |
INDEX |
none |
lang_id |
Table: wp_blog_versions
Field | Type | Null | Key | Default | Extra |
blog_id |
bigint(20) unsigned |
|
PRI |
0 |
FK->wp_blogs.blog_id |
db_version |
varchar(20) |
NO |
|
|
|
last_updated |
datetime |
NO |
|
0000-00-00 00:00:00 |
|
Indexes
Keyname | Type | Cardinality | Field |
PRIMARY |
PRIMARY |
2 |
blog_id |
db_version |
INDEX |
none |
db_version |
Table: wp_registration_log
Field | Type | Null | Key | Default | Extra |
ID |
bigint(20) unsigned |
|
PRI |
NULL |
auto_increment |
email |
varchar(255) |
NO |
|
|
|
IP |
varchar(30) |
NO |
|
|
|
blog_id |
bigint(20) unsigned |
|
PRI |
0 |
FK->wp_blogs.blog_id |
date_registered |
datetime |
NO |
|
0000-00-00 00:00:00 |
|
Indexes
Keyname | Type | Cardinality | Field |
PRIMARY |
PRIMARY |
1 |
ID |
IP |
INDEX |
none |
IP |
Table: wp_signups
Field | Type | Null | Key | Default | Extra |
domain |
varchar(200) |
NO |
|
0 |
|
path |
varchar(100) |
NO |
|
|
|
title |
longtext |
NO |
|
|
|
user_login |
varchar(60) |
NO |
IND |
|
|
user_email |
varchar(100) |
NO |
|
|
|
registered_date |
datetime |
NO |
|
0000-00-00 00:00:00 |
|
activated |
datetime |
NO |
|
0000-00-00 00:00:00 |
|
active |
tinyint(1) |
NO |
|
|
|
activation_key |
varchar(50) |
NO |
|
|
|
meta |
longtext |
|
|
|
|
Indexes
Keyname | Type | Cardinality | Field |
activation_key |
INDEX |
None |
activation_key |
domain |
INDEX |
None |
domain |
Table: wp_site
Field | Type | Null | Key | Default | Extra |
id |
bigint(20) unsigned |
|
PRI |
NULL |
auto_increment |
domain |
varchar(200) |
NO |
|
0 |
|
path |
varchar(100) |
NO |
|
|
|
Indexes
Keyname | Type | Cardinality | Field |
PRIMARY |
PRIMARY |
1 |
id |
domain |
INDEX |
none |
domain,path |
Table: wp_sitecategories
Field | Type | Null | Key | Default | Extra |
cat_id |
bigint(20) unsigned |
NO |
PRI |
NULL |
auto_increment |
cat_name |
carchar(55) |
NO |
|
|
|
category_nicename |
varchar(200) |
NO |
|
|
|
last_updated |
timestamp |
NO |
|
|
|
Indexes
Keyname | Type | Cardinality | Field |
PRIMARY |
PRIMARY |
9 |
cat_id |
category_nicename |
INDEX |
None |
category_nicename |
last_updated |
INDEX |
None |
last_updated |
Table: wp_sitemeta
Field | Type | Null | Key | Default | Extra |
meta_id |
bigint(20) unsigned |
|
PRI |
NULL |
auto_increment |
site_id |
bigint(20) unsigned |
|
|
'0' |
FK->wp_site.site_id |
meta_key |
varchar(255) |
Yes |
IND |
NULL |
|
meta_value |
longtext |
Yes |
IND |
NULL |
|
Indexes
Keyname | Type | Cardinality | Field |
PRIMARY |
PRIMARY |
9 |
meta_id |
meta_key |
INDEX |
None |
meta_key |
site_id |
INDEX |
None |
site_id |
Table: wp_users
Field | Type | Null | Key | Default | Extra |
ID |
bigint(20) unsigned |
|
PRI |
NULL |
auto_increment |
user_login |
varchar(60) |
|
IND |
|
|
user_pass |
varchar(64) |
|
|
|
|
user_nicename |
varchar(50) |
|
IND |
|
|
user_email |
varchar(100) |
|
|
|
|
user_url |
varchar(100) |
|
|
|
|
user_registered |
datetime |
|
|
0000-00-00 00:00:00 |
|
user_activation_key |
varchar(60) |
|
|
|
|
user_status |
int(11) |
|
|
0 |
|
display_name |
varchar(250) |
|
|
|
|
spam |
tinyint(2) |
NO |
|
0 |
|
deleted |
tinyint(2) |
NO |
|
0 |
|
Indexes
Keyname | Type | Cardinality | Field |
PRIMARY |
PRIMARY |
1 |
ID |
user_login_key |
INDEX |
None |
user_login |
user_nicename |
INDEX |
None |
user_nicename |
Site Specific Tables
When a new additional site is created, the site-specific tables, similar to the stand-alone tables above, are created. Each set of tables for a site are created with the site ID (blog_id
) as part of the table name. These are the tables that would be created for site ID 2 and table_prefix wp:
The data of the main site are stored in unnumbered tables.
资源
更新日志