База данных WordPress сайта

Здравствуйте, уважаемые посетители моего скромного блога для начинающих вебразработчиков и web мастеров ZametkiNaPolyah.ru. Продолжаем разговор о создании блога на WordPress. И сегодня мы поговорим о базе данных WordPress. Разберемся с сервером баз данных, который используется движком WordPress, какой тип движка использует база данных WordPress. Поговорим немного о таблицах базы данных WordPress, и на конец,  мы рассмотрим структуру каждой таблицы.

 

База данных WordPress сайта

База данных WordPress сайта

Для чего необходимо знать архитектуру базы данных этой системы управления сайтами? Как минимум, для общего развития. Большинству пользователей WordPress эта информация может показаться излишней и не нужной: простые посетители сайтов вряд ли заинтересуются этим вопросам, многие вебмастера, которые используют WordPress, не представляют себе то, как он работает изнутри, поэтому ставят кучу ненужных плагинов и расширений. Начинающим веб-разработчикам, использующим WordPress, как платформу для создания сайтов и блогов, информация из этого   поста может показаться очень полезной и нужной.


Особенности работы базы данных WordPress

И так, для начала следует сказать, что оригинал статьи на английском языке вы сможете найти на сайте кодекса WordPress. Ссылку была дана в статье, в которой писал про создание WordPress шаблона. Сразу скажу, что перевод статьи о базе данных WordPress не дословный, а вольный. Приступим.

Любому начинающему разработчику WordPress необходимо ознакомиться с двумя вещами: с технической документацией WordPress и с особенностями архитектуры базы данных, как минимум, для того чтобы уметь создавать сложные WordPress шаблоны и простенькие плагины, сегодня мы познакомимся с архитектурой базы данных сайта на WordPress.

Первое, что следует сказать: в качестве системы управления базами данных WordPress использует MySQL сервер версии 5.0.15 и выше (внимание: эта информация актуальна на момент написания публикации). Как я уже говорил: конечному пользователю информация о БД WordPress навряд ли когда-то пригодится, многим разработчикам для создания тем и плагинов WordPress будет достаточно набора функций WordPress для работы с базами данных, но иногда бывают ситуации, когда API WordPress недостаточно.

То есть, иногда возникает потребность обращаться к базам данных напрямую. Поэтому требуется информация о том, как WordPress хранит свои данные и какие есть зависимости и ограничения между таблицами базы данных WordPress. Чтобы обратиться к базам данных WordPress напрямую, следует использовать WPDB класс, но об этом не здесь. Перейдем к рассмотрению схемы и структуры базы данных WordPress.

Структура базы данных WordPress сайта

Ниже вы можете увидеть структуру базы данных WordPress, а также отношения и зависимости между таблицами базы данных. Обратите внимание: такую архитектуру база данных WordPress имеет при начальной установки без плагинов и расширений. База данных WordPress насчитывает 11 таблиц и 9 связей между таблицами: шесть не идентифицирующих и три идентифицирующих.

 

Архитектура базы данных WordPress

Архитектура базы данных WordPress

Обратите внимание: при стандартной установки WordPress целостность данных в базе данных обеспечивается не полностью, например, между записями вашего блога и комментариями. Если вы создаете сложный шаблон, плагин или расширение WordPress, то нужно самостоятельно заботиться о поддержании целостности данных в базе данных. Также не забывайте делать резервные копии базы данных WordPress, перед тем, как попытаетесь вносить изменение вручную.

Таблицы WordPress, откуда брать данные

Далее мы кратко рассмотрим все таблицы базы данных WordPress, обратите внимание: эта информация актуальна только для WordPress без расширений и плагинов, так как некоторые модули WordPress способных изменять, как архитектуру базы данных, так и содержимое некоторых таблиц.

Таблица базы данных WordPress
Имя таблицы WP Содержимое таблицы WP Пользовательский интерфейс
 wp_commentmeta Характеристики каждого комментария хранятся в таблице wp_commentmeta  Админка WP -> Комментарии
 wp_comments WordPress комментарии хранятся в таблице wp_comments  Админка WP ->Комментарии
 wp_links В таблице wp_links хранятся данные о ссылках WordPress  Админка WP -> Ссылки -> Добавить новую 

Админка WP -> Ссылки -> Ссылки
 wp_options Настройки WordPress хранятся в таблице wp_options Админка WP -> Настройки -> Общие 

Админка WP -> Настройки -> Написание

Админка WP -> Настройки -> Чтение

Админка WP -> Настройки -> Обсуждение

Админка WP -> Настройки -> Приватность

Админка WP -> Настройки -> Постоянные ссылки

Админка WP -> Настройки -> Виджеты
 wp_postmeta Характеристики каждой WordPress статьи находятся в таблице wp_postmeta. Некоторые плагины могут добавлять сюда собственную информацию  Админка WP -> Сообщения -> Добавить новое 

Админка WP -> Страницы -> Добавить новую
 wp_posts В таблице wp_posts хранится вся основная информация сайта: навигационное меню, тексты статей и страниц, и пр. Админка WP -> Сообщения 

Админка WP -> Страницы

Админка WP -> Сообщения -> Добавить новое

Админка WP -> Страницы -> Добавить новую

Админка WP -> Медиа -> Добавить новую

Админка WP -> Медиа -> Библиотека

Админка WP -> Оформление -> Меню
 wp_terms Категории для постов, тэгов и ссылок хранятся в этой таблице  Админка WP -> Сообщениия -> Тэги 

Админка WP -> Сообщениия -> Категории

Админка WP -> Ссылки -> Ссылки категорий
 wp_term_relationships Данная таблица предназначена для хранения ассоциаций в WordPress  Админка WP -> Сообщениия 

Админка WP -> Страницы -> Добавить новую

Админка WP -> Страницы
 wp_term_taxonomy В этой таблице хранится информация о таксономии WordPress. Меню категорий, ссылок и тэгов. Данные используются для записи в таблицу wp_terms.
 wp_usermeta Мета-данные о пользователях WordPress хранятся в таблице wp_usermeta  Админка WP -> Пользователи
 wp_users Список бользователей WordPress хранится в таблице wp_users  Админка WP -> Пользователи

Поля WordPress таблиц, идексы, ограничения и связи базы данных WordPress

Приведем подробное описание WordPress таблиц и связей между таблицами WordPress.

Описание таблицы wp_commentmeta базы данных WordPress

Описание таблицы wp_commentmeta базы данных WordPress

//

//

Индексы таблицы wp_commentmeta базы данных WordPress

Индексы таблицы wp_commentmeta базы данных WordPress


Описание таблицы wp_comments базы данных WordPress

Описание таблицы wp_comments базы данных WordPress


Индексы таблицы wp_comments базы данных WordPress

Индексы таблицы wp_comments базы данных WordPress


Описание таблицы wp_links базы данных WordPress

Описание таблицы wp_links базы данных WordPress


Индексы таблицы wp_links базы данных WordPress

Индексы таблицы wp_links базы данных WordPress


Описание таблицы wp_options базы данных WordPress

Описание таблицы wp_options базы данных WordPress


Индексы таблицы wp_options базы данных WordPress

Индексы таблицы wp_options базы данных WordPress


Описание таблицы wp_postmeta базы данных WordPress

Описание таблицы wp_postmeta базы данных WordPress


Индексы таблицы wp_postmeta базы данных WordPress

Индексы таблицы wp_postmeta базы данных WordPress


Описание таблицы wp_posts базы данных WordPress

Описание таблицы wp_posts базы данных WordPress


Индексы таблицы wp_posts базы данных WordPress

Индексы таблицы wp_posts базы данных WordPress


Описание таблицы wp_terms базы данных WordPress

Описание таблицы wp_terms базы данных WordPress


Индексы таблицы wp_terms базы данных WordPress

Индексы таблицы wp_terms базы данных WordPress


Описание таблицы wp_terms_relationships базы данных WordPress

Описание таблицы wp_terms_relationships базы данных WordPress

 

Индексы таблицы wp_terms_relationships базы данных WordPress

Индексы таблицы wp_terms_relationships базы данных WordPress


Описание таблицы wp_term_taxanomy базы данных WordPress

Описание таблицы wp_term_taxanomy базы данных WordPress


Индексы таблицы wp_term_taxanomy базы данных WordPress

Индексы таблицы wp_term_taxanomy базы данных WordPress


Описание таблицы wp_usermeta базы данных WordPress

Описание таблицы wp_usermeta базы данных WordPress


Индексы таблицы wp_usermeta базы данных WordPress

Индексы таблицы wp_usermeta базы данных WordPress

 

Описание таблицы wp_users базы данных WordPress

Описание таблицы wp_users базы данных WordPress


Индексы таблицы wp_users базы данных WordPress

Индексы таблицы wp_users базы данных WordPress

Что же, на этом можно будет закончить описание архитектуры базы данных WordPress.

8 комментариев к записи База данных WordPress сайта

Литейшик

Спасибо, очень полезный перевод, для разработчика под WordPress нужно всегда иметь под рукой информацию о базах данных и архитектуре, а как распечатать? Плохо, что нет информацию по каждому атрибуту таблицы WordPress, сможешь написать?

Кирилл

Да не за что, просто страницу распечатай или скопируй в Ворд, страницы для печати на блоге нет, к сожалению, нужно сделать. По каждому столбцу таблиц БД WordPress даже как-то и не думал писать. В принципе, здесь все очевидно, по названию можно догадаться, если еще просьбы такие будут — допишу этот пост.

Евгений

База данных WordPress довольно скучна для разработчика, всегото 12 таблиц, другое дело Drupal, пока разберешься со связями между таблицами его базы данных, пройдет уйма времени, зато потом можно делать со своим сайтом что угодно, главное, все кэшировать и не увлекаться с запросами к БД:)

Литейшик

Евгений, ты тоже хватанул: сравнивать Drupal и WordPress. Я не хочу холивар тут разводить, скажу так: у Drupal и WordPress задачи разные. Как ты знаешь, база данных — это основа любого сайта, его информационная система, поэтому база данных WordPress и число таблиц у его БД значительно меньше, чем у Drupal или той же Joomla!

Виктор

У меня странная проблема с базой данных WordPress: моему блогу всего лишь три месяца, шестьдесят страниц на сайте, а база данных разрослась до неимоверных размеров, что-то около 200 МБ, не подскажите в чем тут может быть дело?

Кирилл

Скорее всего у вас включен плагин по созданию резервных копий базы данных WordPress, причем очень плохо настроенный: слишком часто создаются резервные копии базы данных. Проверьте его настройки уменьшите частоту и удалите все резервные копии БД, если я ошибся, отпишитесь здесь.

Daniil

Единственное, что огрочает в WordPress — база данных. База данных WordPress, точнее ее архитектура настолько непродуманна, постоянно приходится думать о целостности данных, даже когда делаешь простенький плагин, который делает запрос к БД WordPress

Александр

Можно и мне вопросик задать?

Как создать на Вордпрессе несколько копий сайта с разными языками пользовательского интерфейса (языковые файлы есть), но чтобы полезный контент у этих сайтов был абсолютно одинаковый.

Например, доска объявлений на русском, украинском, белорусском и английском языках, но объявления на всех сайтах общие, назависимо от того, с какой языковой версии сайта они были опубликованы.

Заранее благодарю за ответ!

Текст комментария: