Languages:
English •
العربية •
日本語
中文(简体) •
한국어 •
(Add your language)
아래 내용은 WordPress Version 3.4를 표준 설치하는동안 생성되는 database 테이블에 대한 개요와 설명이다. 현재, 워드프레스에서 데이터베이스는 MySQL 버전 5.0.15 혹은 그 이상만을 지원한다.
또한 이전 버전의 데이터베이스 설명은 다음을 참고하면 된다 :
WordPress 1.5, WordPress 2.0, WordPress 2.2, WordPress 2.3, WordPress 2.5, WordPress 2.7, WordPress 2.8, WordPress 2.9, WordPress 3.3.
워드프레스는 이 데이터베이스와 자동으로 통신하므로, 말단 사용자들은 데이터베이스 구조에 대해 알 필요가 없다.
하지만, 플러그인 작성자(Writing a Plugin)의 경우 워드프레스가 어떻게 데이터를 저장하고 그들간의 관계에 대해 어떻게 정의하는지 궁금해 할 것이다. 만약 이 글을 읽고 있는 당신이 WordPress API를 이용하여 워드프레스 데이터에 접근해보았으나 데이터베이스에 직접적으로 접근할 수 없었다면, 워드프레스에서 제공하는 wpdb를 참조하면 된다. 손쉽게 데이터베이스에 직접 접근을 할 수 있을 것이다.
데이터베이스 다이어그램
아래 다이어그램은 워드프레스 테이블 간의 관계와 데이터베이스를 시각적으로 보여준다. 워드프레스의 데이터베이스는 표준 설치시 자동으로 생성된다. 다이어그램 아래의 테이블 개요는 테이블과 컬럼들에 대한 추가적인 상세 내용을 포함하고 있다.
(WP 3.0 Database diagram)
워드프레스 표준 설치시 테이블들(포스트들과 코멘트들간)간의 무결성 제약조건을 제공하지 않는다. 당신이 워드프레스 데이터베이스를 조작하는 플러그인이나 추가 기능을 만들고 있다면, 데이터간 관계를 잃어 고아가 되는 레코드가 남지 않도록 신경써서 코드를 작성해야 한다.
테이블 개요
이 섹션은 워드프레스 표준 설치시 생성되는 모든 테이블에 대한 개요를 설명한다. 각 테이블에서 특정정보가 무엇인지도 설명한다.
워드프레스 3.4 테이블 (11)
|
테이블 명 |
설명 |
연관된 사용자 인터페이스
|
wp_commentmeta
|
각각의 코멘트에 대한 메타데이터를 저장하는 테이블. |
|
wp_comments
|
코멘트를 저장하는 테이블. |
|
wp_links
|
링크와 연관된 정보를 저장하는 테이블. 워드프레스의 Links에서 입력되는 링크이다. |
|
wp_options
|
Administration > Settings 패널에서 설정된 Options들이 저장되는 테이블. 참조 : Option Reference - 옵션 이름들과 기본값 설명이 되어있다. |
|
wp_postmeta
|
각 포스트에 연관된 메타데이터를 저장하는 테이블. 플러그인 작성시 이 테이블에 원하는 정보를 추가(임의의 메타데이터 이름 생성 가능)할 수도 있다. |
|
wp_posts
|
워드프레스 데이터의 가장 중요한 부분인 포스트가 저장되는 테이블. 페이지와 내비게이션 메뉴 아이템들도 이 테이블에 저장된다. |
|
wp_terms
|
포스트와 링크의 카테고리, 포스트에 대한 태그가 저장되는 테이블. |
|
wp_term_relationships
|
포스트들은 카테고리들과 태그들(카테고리와 태그는 wp_terms에 저장됨.)에 의해 연관 지어진다. 이 관계를 지어주는 관계테이블이 wp_term_relationships이다. 또한, 링크들이 각각의 카테고리와 연관 지어지는 관계도 이 테이블에 저장된다.
|
wp_term_taxonomy
|
이 테이블은 wp_terms 테이블에 저장된 엔트리들에 대해서 category, link, tag와 같은 분류 이름을 저장하는 테이블이다.
|
wp_usermeta
|
사용자에 대한 메타데이터를 저장하는 테이블. |
|
wp_users
|
사용자에 대한 정보를 저장하는 테이블. |
|
테이블 상세
다음은 워드프레스 표준설치시 생성되는 테이블의 각각의 필드들에 대한 상세 설명이다.
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
|
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_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
|
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 |
longtext |
|
|
|
|
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
|
Multisite Table Overview
This section is the overview of the tables created for use with the Multisite feature of WordPress. These tables are created via the processes under Administration > Tools > Network.
These tables are considered the multisite global tables.
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.
|
|
Multisite Table Details
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 |
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 |
varchar(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.
Resources
Changelog
- 2.8 :
- comments table: Changed
comment_post_ID
column from int(11)
to bigint(20) unsigned
.
- links table: Deleted
link_category
column. Changed link_owner
column from int(11)
to bigint(20) unsigned
.
- posts table: Deleted
post_category
column.
- term_taxonomy table: Added KEY
taxonomy
.
- Add
unsigned
attribute to various bigint(20)
fields.