Revision table
MediaWiki version: | 1.5 | and after |
Таблица revision содержит метаданные к каждому эпизоду редактирования. Каждая акция по редактированию создаёт запись, соответствующую новой версии и содержащию информацию о том, кто, когда редактировал и ссылку на новый текст в таблице text. Имейте ввиду, что в помянутой записи содержится информация об операции редактирования и, частично, о её результате, но не содержится никакой информации о предыдущей версии.
Импорт последней версии страницы из другого вики создаёт две записи в таблице revision table, одну с датой и текстом one with the date and wikitext of the imported revision, and one with the import date. The wikitext of the latter, which becomes that of the current page, is, if a page with the same name already existed, that of the more recent of the two pages. (Тут тёмное место, т.к. в этой таблице не хранится никакого викитеста. По всей видимости имеются ввиду ссылки на таблицу text С.Н.).
Таблица revision довольно похожа на таблицу recentchanges. Таблица revision используется для генерации списков Истории страницы и Вклада участника. Таблица recentchanges используется для генерации списков Свежих правок, related changes, Список наблюдения, и при генерации list of new pages.
Разница состоит в следующем:
- Записи в таблице recentchanges хранят ссылки на предыдущую версию страницы.
- Таблица recentchanges содержит записис, соответствующие журналируемым событиям, таким, как перемещение (переиенование) и удаление страниц.
- Содержимое таблицы recentchanges периодически вычищается оттуда. Содержимое таблица revision обычно сохраняется достаточно долго.
- Как уже было сказано, импорт страницы добавляет запись о версии не только с датой импорта, но и с датой оригинальной страницы.
ПоляПравить
rev_idПравить
Поле - уникальный идентификатор версии страницы. Первичный ключ.
rev_pageПравить
Поле содержит идентификатор страницы, к которой относится версия. Является внешним ключом к page_id.
rev_text_idПравить
Внешний ключ к old_id в таблице text table, позволяющий найти исходный текст страницы, соответствующей версии. Возможна ситуация, когда несколько записей их таблицы Revisions ссылаются на одну запись в таблице Text. Это происходит, если во время редактирования, породившего новую запись в revisions, изменялись только метаданные или при откате правок к предыдущей версии.
rev_commentПравить
Это поле содержит комментарий к правке комментарий к правке. Его содержимое используется при выводе истории страницы и вклада участника.
(Таблица recentchanges содержит копию этой информации, используемую для вывода списка свежих правок, related changes, watchlists, и, во время создания статьи list of new pages.)
Поле отрисовывается с использованием очищенного подмножества вики-разметки.
rev_userПравить
Внешний ключ к user_id Соответствует user_id автора правки. 0 проставляется для анонимных правок, правок, созданных инициализационными скриптами и некоторых случаев массового импорта.
rev_user_textПравить
В этом поле проставляется имя автора правки или IP, в том случае, если правка сделана анонимно.
rev_timestampПравить
Отметка о времени редактирования.
rev_minor_editПравить
Единица, если изменение, вносимое в новую версию декларируется как малое и 0 - в ином случае.
rev_deletedПравить
Поле зарезервировано для для будущих измнений. В версии до 1.10 включительно не используется. Будет представлять из себя bitmap. Описание будет помещено сюда позже.
rev_lenПравить
MediaWiki version: | 1.10 | and after |
Длина версии в байтах. Используется при выводе истории страницы.
rev_parent_idПравить
MediaWiki version: | 1.10 | and after |
Поле необходимо для поддержки древовидной структуры. (The Adjacency List Model). (Что это такое - я пока не знаю. С.Н.)
Schema summaryПравить
MediaWiki version: | 1.10 |
DESCRIBE revision in MediaWiki 1.10 gives the following:
mysql> describe mw_revision; +----------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+---------+----------------+ | rev_id | int(8) unsigned | NO | PRI | NULL | auto_increment | | rev_page | int(8) unsigned | NO | PRI | NULL | | | rev_text_id | int(8) unsigned | NO | | NULL | | | rev_comment | tinyblob | NO | | NULL | | | rev_user | int(5) unsigned | NO | MUL | 0 | | | rev_user_text | varchar(255) | NO | MUL | NULL | | | rev_timestamp | char(14) | NO | MUL | NULL | | | rev_minor_edit | tinyint(1) unsigned | NO | | 0 | | | rev_deleted | tinyint(1) unsigned | NO | | 0 | | | rev_len | int(8) unsigned | YES | | NULL | | | rev_parent_id | int(8) unsigned | YES | | NULL | | +----------------+---------------------+------+-----+---------+----------------+ 11 rows in set
MediaWiki version: | 1.9 |
MediaWiki version: | 1.8 |
MediaWiki version: | 1.7 |
MediaWiki version: | 1.6 |
MediaWiki version: | 1.5 |
DESCRIBE revision in MediaWiki 1.9 and earlier gives the following:
mysql> describe mw_revision; +----------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+---------+----------------+ | rev_id | int(8) unsigned | NO | PRI | NULL | auto_increment | | rev_page | int(8) unsigned | NO | PRI | NULL | | | rev_text_id | int(8) unsigned | NO | | NULL | | | rev_comment | tinyblob | NO | | NULL | | | rev_user | int(5) unsigned | NO | MUL | 0 | | | rev_user_text | varchar(255) | NO | MUL | NULL | | | rev_timestamp | char(14) | NO | MUL | NULL | | | rev_minor_edit | tinyint(1) unsigned | NO | | 0 | | | rev_deleted | tinyint(1) unsigned | NO | | 0 | | +----------------+---------------------+------+-----+---------+----------------+ 9 rows in set