Przegląd tabel bazy danych Wordpresa

.

WordPress jest systemem zarządzania treścią, gdzie dane sa przechowywane w tabelach bazy danych. Jedynym i domyślnym systemem bazy danych obsługiwanym przez ten CMS jest MySQL. Niniejeszy wpis ma na celu dokonanie wglądu w zawartość bazy danych, która jest tworzona podczas standardowego procesu instalacji Wordpresa.

Nieniejszy wpis zakłada co najmniej podstawową znajomość bazy dancyh MySQL i języka programowania PHP.

Baza danych Wordpresa w wersji 3.0 ( do której odnosi się ten wpis ) składa się z 11 tabel, które można podzielić na kilka grup. Istnieje więc grupa tabel zawierająca dane o wpisach, komentarzach, taksonomiach, odnośnikach, użytkownikach oraz tabela, gdzie mieszczą się wszystkie ustawienia instalacji Wordpresa.

Do większości informacji przetrzymywanych w bazie danych Wordpresa można dostać się z poziomu panelu administracyjnego, gdzie możliwa jest ich modyfikacja.

Za interakacje z bazą danych w Wordpresie odpowiedzialny jest obiekt wpdb będący instancją klasy o tej samej nazwie i posiadający własności o nazwach takich jak nazwy tabel instalacji z wyłączeniem prefixu ( domyślnie "wp_"). Innymi słowy, informacje o wpisach można uzyskać przy użyciu własności obiektu $posts, o użytkownikach z $users itd. Własności obiektu wpdb są również dostępne jako globalne zmienne PHP.

Tabela wp_options

W tej tabeli przetrzymywane są wszystkie ustawienia bloga, w tym także znaczna część tych dostępnych z poziomu panelu administracyjnego i zakładki "Ustawienia". w wielu przypadku dane przetrzymywane są w tej tabeli w postaci serializowanych tablic PHP.


+--------------+---------------------+------+-----+---------+----------------+
| Field        | Type                | Null | Key | Default | Extra          |
+--------------+---------------------+------+-----+---------+----------------+
| option_id    | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
| blog_id      | int(11)             | NO   |     | 0       |                |
| option_name  | varchar(64)         | NO   | UNI |         |                |
| option_value | longtext            | NO   |     | NULL    |                |
| autoload     | varchar(20)         | NO   |     | yes     |                |
+--------------+---------------------+------+-----+---------+----------------+

Tabela wp_posts

W tej tabeli przetrzymywane są wszystkie informacje na temat wpisów, stron oraz menu nawigacyjnych. Jest to zazwyczaj największa objętościowo tabela bazy danych i zawiera większość informacji o wpisie takich jak: zawartość, tytuł, wypis, datę jego modyfikacji, typ zawartości czy liczbę komentarzy.


+-----------------------+---------------------+------+-----+---------------------+----------------+
| Field                 | Type                | Null | Key | Default             | Extra          |
+-----------------------+---------------------+------+-----+---------------------+----------------+
| ID                    | bigint(20) unsigned | NO   | PRI | NULL                | auto_increment |
| post_author           | bigint(20) unsigned | NO   | MUL | 0                   |                |
| post_date             | datetime            | NO   |     | 0000-00-00 00:00:00 |                |
| post_date_gmt         | datetime            | NO   |     | 0000-00-00 00:00:00 |                |
| post_content          | longtext            | NO   |     | NULL                |                |
| post_title            | text                | NO   |     | NULL                |                |
| post_excerpt          | text                | NO   |     | NULL                |                |
| post_status           | varchar(20)         | NO   |     | publish             |                |
| comment_status        | varchar(20)         | NO   |     | open                |                |
| ping_status           | varchar(20)         | NO   |     | open                |                |
| post_password         | varchar(20)         | NO   |     |                     |                |
| post_name             | varchar(200)        | NO   | MUL |                     |                |
| to_ping               | text                | NO   |     | NULL                |                |
| pinged                | text                | NO   |     | NULL                |                |
| post_modified         | datetime            | NO   |     | 0000-00-00 00:00:00 |                |
| post_modified_gmt     | datetime            | NO   |     | 0000-00-00 00:00:00 |                |
| post_content_filtered | text                | NO   |     | NULL                |                |
| post_parent           | bigint(20) unsigned | NO   | MUL | 0                   |                |
| guid                  | varchar(255)        | NO   |     |                     |                |
| menu_order            | int(11)             | NO   |     | 0                   |                |
| post_type             | varchar(20)         | NO   | MUL | post                |                |
| post_mime_type        | varchar(100)        | NO   |     |                     |                |
| comment_count         | bigint(20)          | NO   |     | 0                   |                |
+-----------------------+---------------------+------+-----+---------------------+----------------+

Tabela wp_postmeta

Tabela wp_postmeta zawiera dodatkowe informacje o wpisach, stronch lub menu nawigacyjnych. Tak jak w przypadku tabeli wp_options wartości najczęściej przechowywane są w postaci serializowanych tablic PHP.


+------------+---------------------+------+-----+---------+----------------+
| Field      | Type                | Null | Key | Default | Extra          |
+------------+---------------------+------+-----+---------+----------------+
| meta_id    | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
| post_id    | bigint(20) unsigned | NO   | MUL | 0       |                |
| meta_key   | varchar(255)        | YES  | MUL | NULL    |                |
| meta_value | longtext            | YES  |     | NULL    |                |
+------------+---------------------+------+-----+---------+----------------+

Tabela wp_comments

Tabela wp_comments jest miejscem, gdzie przechowywane są komentarze, włączając w to jego treść, informacje o autorze, date dodania, typ i dostępność.


+----------------------+---------------------+------+-----+---------------------+----------------+
| Field                | Type                | Null | Key | Default             | Extra          |
+----------------------+---------------------+------+-----+---------------------+----------------+
| comment_ID           | bigint(20) unsigned | NO   | PRI | NULL                | auto_increment |
| comment_post_ID      | bigint(20) unsigned | NO   | MUL | 0                   |                |
| comment_author       | tinytext            | NO   |     | NULL                |                |
| comment_author_email | varchar(100)        | NO   |     |                     |                |
| comment_author_url   | varchar(200)        | NO   |     |                     |                |
| comment_author_IP    | varchar(100)        | NO   |     |                     |                |
| comment_date         | datetime            | NO   |     | 0000-00-00 00:00:00 |                |
| comment_date_gmt     | datetime            | NO   | MUL | 0000-00-00 00:00:00 |                |
| comment_content      | text                | NO   |     | NULL                |                |
| comment_karma        | int(11)             | NO   |     | 0                   |                |
| comment_approved     | varchar(20)         | NO   | MUL | 1                   |                |
| comment_agent        | varchar(255)        | NO   |     |                     |                |
| comment_type         | varchar(20)         | NO   |     |                     |                |
| comment_parent       | bigint(20) unsigned | NO   | MUL | 0                   |                |
| user_id              | bigint(20) unsigned | NO   |     | 0                   |                |
+----------------------+---------------------+------+-----+---------------------+----------------+

Tabela wp_commentmeta

W tabeli wp_commentmeta zawiera dodatkowe informacje o wpisie. Tak jak w przypadku innych tabel z meta danymi, informacje są przetrzymywane głównie w postaci serializowanych tablic.


+------------+---------------------+------+-----+---------+----------------+
| Field      | Type                | Null | Key | Default | Extra          |
+------------+---------------------+------+-----+---------+----------------+
| meta_id    | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
| comment_id | bigint(20) unsigned | NO   | MUL | 0       |                |
| meta_key   | varchar(255)        | YES  | MUL | NULL    |                |
| meta_value | longtext            | YES  |     | NULL    |                |
+------------+---------------------+------+-----+---------+----------------+

Tabela wp_links

;
Tabela wp_links służy do przechowywania informacji o odnośnikach i zawiera informacje takie jak adres URL, nazwa, opis, atrybuty znaczników html czy widoczność.


+------------------+---------------------+------+-----+---------------------+----------------+
| Field            | Type                | Null | Key | Default             | Extra          |
+------------------+---------------------+------+-----+---------------------+----------------+
| link_id          | bigint(20) unsigned | NO   | PRI | NULL                | auto_increment |
| link_url         | varchar(255)        | NO   |     |                     |                |
| link_name        | varchar(255)        | NO   |     |                     |                |
| link_image       | varchar(255)        | NO   |     |                     |                |
| link_target      | varchar(25)         | NO   |     |                     |                |
| link_description | varchar(255)        | NO   |     |                     |                |
| link_visible     | varchar(20)         | NO   | MUL | Y                   |                |
| link_owner       | bigint(20) unsigned | NO   |     | 1                   |                |
| link_rating      | int(11)             | NO   |     | 0                   |                |
| link_updated     | datetime            | NO   |     | 0000-00-00 00:00:00 |                |
| link_rel         | varchar(255)        | NO   |     |                     |                |
| link_notes       | mediumtext          | NO   |     | NULL                |                |
| link_rss         | varchar(255)        | NO   |     |                     |                |
+------------------+---------------------+------+-----+---------------------+----------------+

Tabela wp_terms

Tabela wp_terms zawiera terminy używane w Wordpresie. W przypadku standardowej instalacji są to nazwy kategorii wpisów oraz tagów.


+------------+---------------------+------+-----+---------+----------------+
| Field      | Type                | Null | Key | Default | Extra          |
+------------+---------------------+------+-----+---------+----------------+
| term_id    | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
| name       | varchar(200)        | NO   | MUL |         |                |
| slug       | varchar(200)        | NO   | UNI |         |                |
| term_group | bigint(10)          | NO   |     | 0       |                |
+------------+---------------------+------+-----+---------+----------------+

Tabela term_relationships

Tabela term_relationships zawiera istniejące relacje między wpisami a kategoriami i tagami oraz linkami i kategoriami.


+------------------+---------------------+------+-----+---------+-------+
| Field            | Type                | Null | Key | Default | Extra |
+------------------+---------------------+------+-----+---------+-------+
| object_id        | bigint(20) unsigned | NO   | PRI | 0       |       |
| term_taxonomy_id | bigint(20) unsigned | NO   | PRI | 0       |       |
| term_order       | int(11)             | NO   |     | 0       |       |
+------------------+---------------------+------+-----+---------+-------+

Tabela wp_term_taxonomy

Tabela wp_term_taxonomy służy do przechowywani informacji o rodzaju taksonomii. W wordpresie domyślnie dostępne są trzy rodzaje taksonomii i są to: kategorie, tagi wpisów oraz kategorie linków.


+------------------+---------------------+------+-----+---------+----------------+
| Field            | Type                | Null | Key | Default | Extra          |
+------------------+---------------------+------+-----+---------+----------------+
| term_taxonomy_id | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
| term_id          | bigint(20) unsigned | NO   | MUL | 0       |                |
| taxonomy         | varchar(32)         | NO   | MUL |         |                |
| description      | longtext            | NO   |     | NULL    |                |
| parent           | bigint(20) unsigned | NO   |     | 0       |                |
| count            | bigint(20)          | NO   |     | 0       |                |
+------------------+---------------------+------+-----+---------+----------------+

Tabela wp_users

Tabela wp_users przechowuje informacje o zarejestrowanych osobach na blogu i są to między innymi nazwa użytkownika, hasło, status, adres strony www, adres email.


+---------------------+---------------------+------+-----+---------------------+----------------+
| Field               | Type                | Null | Key | Default             | Extra          |
+---------------------+---------------------+------+-----+---------------------+----------------+
| ID                  | bigint(20) unsigned | NO   | PRI | NULL                | auto_increment |
| user_login          | varchar(60)         | NO   | MUL |                     |                |
| user_pass           | varchar(64)         | NO   |     |                     |                |
| user_nicename       | varchar(50)         | NO   | MUL |                     |                |
| user_email          | varchar(100)        | NO   |     |                     |                |
| user_url            | varchar(100)        | NO   |     |                     |                |
| user_registered     | datetime            | NO   |     | 0000-00-00 00:00:00 |                |
| user_activation_key | varchar(60)         | NO   |     |                     |                |
| user_status         | int(11)             | NO   |     | 0                   |                |
| display_name        | varchar(250)        | NO   |     |                     |                |
+---------------------+---------------------+------+-----+---------------------+----------------+

Tabela wp_usermeta

W tabeli wp_usermeta przechowywane są dodatkowe informacje na temat zarejestrowych użytkowników bloga.


+------------+---------------------+------+-----+---------+----------------+
| Field      | Type                | Null | Key | Default | Extra          |
+------------+---------------------+------+-----+---------+----------------+
| umeta_id   | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
| user_id    | bigint(20) unsigned | NO   | MUL | 0       |                |
| meta_key   | varchar(255)        | YES  | MUL | NULL    |                |
| meta_value | longtext            | YES  |     | NULL    |                |
+------------+---------------------+------+-----+---------+----------------+

Więcej informacji na temat bazy danych Wordpresa można znaleźć na tej stronie kodeksu.
Diagram pokazujący relacje zachodzące pomiędzy poszczególnymi tabelami bazy danych można znaleźć na tym diagramie


Twój komentarz





Niektóre tagi XHTML są dozwolone
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>