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

Шаблон:MW 1.11

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 

Ссылки[править]

Оригинал статьи