Часть 12.5: Сортировка выборки данных в базах данных: ORDER BY и SELECT в SQLIte
Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. Уметь…
Здравствуйте, уважаемые посетители моего скромного блога для начинающих вебразработчиков и web мастеров ZametkiNaPolyah.ru. Продолжаем разговор о создании блога на 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 насчитывает 11 таблиц и 9 связей между таблицами: шесть не идентифицирующих и три идентифицирующих.
Обратите внимание: при стандартной установки 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 нужно всегда иметь под рукой информацию о базах данных и архитектуре, а как распечатать? Плохо, что нет информацию по каждому атрибуту таблицы WordPress, сможешь написать?
Да не за что, просто страницу распечатай или скопируй в Ворд, страницы для печати на блоге нет, к сожалению, нужно сделать. По каждому столбцу таблиц БД WordPress даже как-то и не думал писать. В принципе, здесь все очевидно, по названию можно догадаться, если еще просьбы такие будут — допишу этот пост.
База данных WordPress довольно скучна для разработчика, всегото 12 таблиц, другое дело Drupal, пока разберешься со связями между таблицами его базы данных, пройдет уйма времени, зато потом можно делать со своим сайтом что угодно, главное, все кэшировать и не увлекаться с запросами к БД:)
Евгений, ты тоже хватанул: сравнивать Drupal и WordPress. Я не хочу холивар тут разводить, скажу так: у Drupal и WordPress задачи разные. Как ты знаешь, база данных — это основа любого сайта, его информационная система, поэтому база данных WordPress и число таблиц у его БД значительно меньше, чем у Drupal или той же Joomla!
У меня странная проблема с базой данных WordPress: моему блогу всего лишь три месяца, шестьдесят страниц на сайте, а база данных разрослась до неимоверных размеров, что-то около 200 МБ, не подскажите в чем тут может быть дело?
Скорее всего у вас включен плагин по созданию резервных копий базы данных WordPress, причем очень плохо настроенный: слишком часто создаются резервные копии базы данных. Проверьте его настройки уменьшите частоту и удалите все резервные копии БД, если я ошибся, отпишитесь здесь.
Единственное, что огрочает в WordPress — база данных. База данных WordPress, точнее ее архитектура настолько непродуманна, постоянно приходится думать о целостности данных, даже когда делаешь простенький плагин, который делает запрос к БД WordPress
Можно и мне вопросик задать?
Как создать на Вордпрессе несколько копий сайта с разными языками пользовательского интерфейса (языковые файлы есть), но чтобы полезный контент у этих сайтов был абсолютно одинаковый.
Например, доска объявлений на русском, украинском, белорусском и английском языках, но объявления на всех сайтах общие, назависимо от того, с какой языковой версии сайта они были опубликованы.
Заранее благодарю за ответ!