WordPressのDB設計

この記事は世界一有名なブログシステムであるWordPressのDB設計を調べてみたので、書き残しておきます。

調査した環境

Dockerにて構築(下記参照)してインストール直後のテーブルの状態を調べました。
バージョンは6.3でした。

docker-compose.yml
version: '3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:
YAML

調査結果

ER図

小さくて見にくかったらごめんなさい。要望があれば分割して書き直します。

erDiagram wp_users ||--o{ wp_usermeta : "" wp_users ||--o{ wp_comments : "" wp_posts ||--o{ wp_postmeta : "" wp_posts ||--o{ wp_comments : "" wp_posts ||--o{ wp_term_relationships : "" wp_comments ||--o{ wp_commentmeta : "" wp_terms ||--o{ wp_termmeta : "" wp_terms ||--o{ wp_term_taxonomy : "" wp_links ||--o{ wp_term_relationships : "" wp_term_taxonomy ||--o{ wp_term_relationships : "" wp_users { bigint ID varchar user_login varchar user_pass varchar user_nicename varchar user_email varchar user_url datetime user_registered varchar user_activation_key int user_status varchar display_name } wp_commentmeta { bigint meta_id bigint comment_id varchar meta_key longtext meta_value } wp_comments { bigint comment_ID bigint comment_post_ID tinytext comment_author varchar comment_author_email varchar comment_author_url varchar comment_author_IP datetime comment_date datetime comment_date_gmt text comment_content int comment_karma varchar comment_approved varchar comment_agent varchar comment_type bigint comment_parent bigint user_id } wp_links { bigint link_id varchar link_url varchar link_name varchar link_image varchar link_target varchar link_description varchar link_visible bigint link_owner int link_rating datetime link_updated varchar link_rel mediumtext link_notes varchar link_rss } wp_options { bigint option_id varchar option_name longtext option_value varchar autoload } wp_postmeta { bigint meta_id bigint post_id varchar meta_key longtext meta_value } wp_posts { bigint ID bigint post_author datetime post_date datetime post_date_gmt longtext post_content text post_title text post_excerpt varchar post_status varchar comment_status varchar ping_status varchar post_password varchar post_name text to_ping text pinged datetime post_modified datetime post_modified_gmt longtext post_content_filtered bigint post_parent varchar guid int menu_order varchar post_type varchar post_mime_type bigint comment_count } wp_term_relationships { bigint object_id bitint term_taxonomy_id int term_order } wp_term_taxonomy { bigint term_taxonomy_id bigint term_id varchar taxonomy longtext description bigint parent bigint count } wp_termmeta { bigint meta_id bigint term_id varchar meta_key longtext meta_value } wp_terms { bigint term_id varchar name varchar slug bigint term_group } wp_usermeta { bigint umeta_id bigint user_id varchar meta_key longtext meta_value }

テーブル

テーブル一覧

テーブル名機能
wp_commentmetaコメントのメタデータを管理
wp_comments投稿へのコメントを管理
wp_linksリンクを管理
wp_optionsオプション設定
wp_postmeta投稿のメタデータ
wp_posts投稿を管理
wp_termmetaカテゴリ・タグのメタデータ
wp_termsカテゴリ・タグ
wp_term_relationships記事とカテゴリ・タグの関連付け
wp_term_taxonomyカテゴリ・タグの分類
wp_usermeta登録ユーザーメタ情報
wp_users登録ユーザー情報

詳細は公式情報を見よう

色々調べていたら、WordPress Codexという公式のドキュメント内にあるDatabase Description(英語)のページがありました。
より正確な情報はこちらを見ましょう。

コメント

タイトルとURLをコピーしました