手册:监视列表

From mediawiki.org
This page is a translated version of the page Manual:Watchlist table and the translation is 28% complete.
手册:索引 MediaWiki数据库布局 watchlist表

The watchlist table for each registered user contains their ID and for all the pages the user watches, the namespace number, the page title without namespace, and a notification timestamp, used for page change notification.

MediaWiki works with the assumption that when people watch pages they either watch both the talk page and the normal page, or neither. That means that for each watched page MediaWiki always automatically adds two entries: One for the page and one for its talk page. E.g. when the user watches the Main Page, then there will be two rows in the database table: One for the Main Page in namespace 0 and one for the Main Page in namespace 1 (which is the according talk page). Missing page rows are added by the maintenance script update.php.

Fields

wl_id

MediaWiki版本:
1.27

This is the primary key for the table.

wl_user

这是user.user_id 的关键。

wl_namespace

这是page_namespace 的关键。

wl_title

这是page_title 的关键。

wl_notificationtimestamp

MediaWiki版本:
1.4

This is the timestamp of the first change to the page made by another user after the last visit by the watching user; the timestamp is cleared when the user visits the page. When the timestamp is updated, notification email may be sent.

The timestamp is always cleared (made NULL) when the user visits the page, whatever their personal settings, as long as either of $wgUseEnotif or $wgShowUpdatedMarker is true.

MediaWiki版本:
1.26

Since git #836ad263, the timestamp update may be deferred to the job queue.

Schema summary

MediaWiki版本:
1.27

DESCRIBE watchlist;

+--------------------------+------------------+------+-----+---------+----------------+
| Field                    | Type             | Null | Key | Default | Extra          |
+--------------------------+------------------+------+-----+---------+----------------+
| wl_id                    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| wl_user                  | int(10) unsigned | NO   | MUL | NULL    |                |
| wl_namespace             | int(11)          | NO   | MUL | 0       |                |
| wl_title                 | varbinary(255)   | NO   |     |         |                |
| wl_notificationtimestamp | varbinary(14)    | YES  |     | NULL    |                |
+--------------------------+------------------+------+-----+---------+----------------+
MediaWiki版本:
1.10 – 1.26

DESCRIBE watchlist;

+--------------------------+------------------+------+-----+---------+-------+
| Field                    | Type             | Null | Key | Default | Extra |
+--------------------------+------------------+------+-----+---------+-------+
| wl_user                  | int(10) unsigned | NO   | PRI | NULL    |       |
| wl_namespace             | int(11)          | NO   | PRI | 0       |       |
| wl_title                 | varbinary(255)   | NO   | PRI |         |       |
| wl_notificationtimestamp | varbinary(14)    | YES  |     | NULL    |       |
+--------------------------+------------------+------+-----+---------+-------+
MediaWiki版本:
1.6 – 1.9

DESCRIBE watchlist;

+--------------------------+---------------------+------+-----+---------+-------+
| Field                    | Type                | Null | Key | Default | Extra |
+--------------------------+---------------------+------+-----+---------+-------+
| wl_user                  | int(5) unsigned     | NO   | PRI | NULL    |       |
| wl_namespace             | int(11)             | NO   | PRI | 0       |       |
| wl_title                 | varchar(255) binary | NO   | PRI | NULL    |       |
| wl_notificationtimestamp | varchar(14) binary  | YES  |     | NULL    |       |
+--------------------------+---------------------+------+-----+---------+-------+
MediaWiki版本:
1.5

DESCRIBE watchlist;

+--------------------------+---------------------+------+-----+---------+-------+
| Field                    | Type                | Null | Key | Default | Extra |
+--------------------------+---------------------+------+-----+---------+-------+
| wl_user                  | int(5) unsigned     | NO   | PRI | NULL    |       |
| wl_namespace             | int(11)             | NO   | PRI | 0       |       |
| wl_title                 | varchar(255) binary | NO   | PRI | NULL    |       |
| wl_notificationtimestamp | varchar(14) binary  | NO   |     | NULL    |       |
+--------------------------+---------------------+------+-----+---------+-------+
MediaWiki版本:
1.1 – 1.4

DESCRIBE watchlist;

+--------------+---------------------+------+-----+---------+-------+
| Field        | Type                | Null | Key | Default | Extra |
+--------------+---------------------+------+-----+---------+-------+
| wl_user      | int(5) unsigned     | NO   | PRI | NULL    |       |
| wl_namespace | tinyint(2) unsigned | NO   | PRI | 0       |       |
| wl_title     | varchar(255) binary | NO   | PRI | NULL    |       |
+--------------+---------------------+------+-----+---------+-------+

Indexes

MediaWiki版本:
1.36

SHOW INDEX IN watchlist;

+-----------+------------+-------------------------------+--------------+--------------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table     | Non_unique | Key_name                      | Seq_in_index | Column_name              | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-----------+------------+-------------------------------+--------------+--------------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| watchlist |          0 | PRIMARY                       |            1 | wl_id                    | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| watchlist |          0 | wl_user                       |            1 | wl_user                  | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| watchlist |          0 | wl_user                       |            2 | wl_namespace             | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| watchlist |          0 | wl_user                       |            3 | wl_title                 | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| watchlist |          1 | wl_namespace_title            |            1 | wl_namespace             | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| watchlist |          1 | wl_namespace_title            |            2 | wl_title                 | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| watchlist |          1 | wl_user_notificationtimestamp |            1 | wl_user                  | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| watchlist |          1 | wl_user_notificationtimestamp |            2 | wl_notificationtimestamp | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
+-----------+------------+-------------------------------+--------------+--------------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

参阅