Page table
Таблица Page - это центральная таблица Вики. Каждой странице сайта, работающего под Mediawiki, соответствует запись в этой таблице. В записи хранится имя и некоторые метаданные.
Впервые появилась в версии r6710 MediaWiki 1.5.
Сам текст страницы хранится в таблице text. Чтобы извлечь текст статьи, Mediawiki сначала ищет Заголовок статьи - Поле page_title в таблице Page. Соответствующий заголовку идентификатор версии page_latest используется для поиска по rev_id, в таблице revision table. Из соответствующей записи в таблице revision table извлекается идентификатор rev_text_id который используется уже для поиска по old_id в text table. В результате мы таки получаем указатель на текст.
Кстати, о птичках. Если Вы хотите полностью удалить страницу вручную из базы - надо удалять не только запись о страницы в таблице Page, но и все записи о версиях страницы в таблице revisions, и все записи, соответствующие странице в таблице text. Удаление записей из таблицы text без удаления соответствующих ссылок в таблицах revisions и Page приведёт к непредсказуемой работе движка. Потому что текста в базе физически не будет, но ссылки на него останутся.
Предупреждение! Due to the way the archive table operates, these revisions cannot be restored. They are permanently deleted.
ПоляПравить
page_idПравить
Уникальный идентификатор. Первичный ключ. Остаётся неизменным в процессе редактирований и переименований, но не защишается при удалении и восстановлении страницы.
page_namespaceПравить
Имя страницы делится на пространство имён (namespace) и заголовок.
Ключи namespace являются цифровыми идентификаторами, независимыми от языка. См. includes/Defines.php.
Данное поле хранит номер namespace в котором расположена страница. Эти номера лежат в диапазоне от 0 до 15 для стандартных пространств имён и от 100 до 255 для настраиваемых.
page_titleПравить
Заголовок статьи, очищенный от наименования пространства имён. Все пробелы заменены подчёркиваниями.
page_restrictionsПравить
MediaWiki version: | 1.9 | and earlier |
Comma-separated set of permission keys indicating who can move or edit the page.
Beginning with MediaWiki 1.10, page protection controls were moved to the page restrictions table.
page_counterПравить
Счётчик просмотров страницы.
page_is_redirectПравить
Содержит единицу 1 если страница является Страницей перенаправления, 0, если нет.
page_is_newПравить
Содержит 1, если статья является новой (т.е. была всего одна правка). 0, если нет.
page_randomПравить
Случайное число от 0 до 1, используется в Special:Randompage.
page_touchedПравить
timestamp Обновляется каждый раз, когда страница изменяется способом, требующим обновления закэшированных страниц. Не только при редактировании, но и при изменении прав доступа, создании или удалении связанных страниц, изменении употреблённых на странице шаблонов.
page_latestПравить
Внешний ключ к rev_id, соответствующий актуальной версии страницы. Может быть равен 0 во время создания страницы.
page_lenПравить
Uncompressed (??) длина в байтах актуального исходного (т.е. со всей разметкой) текста страницы.
Структура таблицыПравить
MediaWiki version: | 1.10 |
MediaWiki version: | 1.9 |
MediaWiki version: | 1.8 |
MediaWiki version: | 1.7 |
MediaWiki version: | 1.6 |
MediaWiki version: | 1.5 |
DESCRIBE page in MediaWiki 1.5 through 1.10 results in:
mysql> describe mw_page; +-----------------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------------+---------------------+------+-----+---------+----------------+ | page_id | int(8) unsigned | NO | PRI | NULL | auto_increment | | page_namespace | int(11) | NO | MUL | NULL | | | page_title | varchar(255) | NO | | NULL | | | page_restrictions | tinyblob | NO | | NULL | | | page_counter | bigint(20) unsigned | NO | | 0 | | | page_is_redirect | tinyint(1) unsigned | NO | | 0 | | | page_is_new | tinyint(1) unsigned | NO | | 0 | | | page_random | double unsigned | NO | MUL | NULL | | | page_touched | char(14) | NO | | NULL | | | page_latest | int(8) unsigned | NO | | NULL | | | page_len | int(8) unsigned | NO | MUL | NULL | | +-----------------------+---------------------+------+-----+---------+----------------+ 11 rows in set (0.02 sec)