Manual:Page table/zh

page表可以称为“wiki的核心”. MediaWiki中的每一个页面都在这张表中有一条使用标题作为标识的记录（entry），包含基本元数据. 这张表第一次被引入是在r6710，MediaWiki1.5的版本中.

页面中的文字存储在表中. 查找条目时，MediaWiki首先在page表中的page_title字段进行搜寻. 然后，使用page_latest在表中搜索，并在此过程中获得. 为获取的值用于在文本表中搜索以检索文本. 删除页面后，修订将移动到表.

page_id
唯一标识主键值 这个值会在所有编辑与移动操作中保持.

当页面移动时，页面ID不会更改，但当页面删除然后恢复时，页面ID可能会更改. 从MediaWiki 1.27开始，历史页面ID保留在表中，恢复后的页面尝试回收其旧页面ID.

MediaWiki 提供许多相关工具：


 * 任何页面(特殊页面除外)的页面ID都可以在“工具”菜单的“页面信息”链接中找到.
 * 魔术字 可以用来返回页面的页面ID.
 * 特殊页面Special:ReDirect可用于通过页面ID访问页面. 例如，Special:Redirect/page/会重定向到当前页面.
 * index.php接受参数 以通过页面ID访问页面. 例如，[///w/index.php?curid= /w/index.php?curid=]将加载当前页面.

还有许多应用程序接口（API）功能可以返回页面ID或将其用作输入. 例如，对于当前页面， ，请参阅https://www.mediawiki.org/w/api.php?action=query&prop=info&titles=Manual:Page%20table和https://www.mediawiki.org/w/api.php?action=query&prop=info&pageids=10501. 此字段可通过、等访问.

page_namespace
页面名称被分解为命名空间和标题. The namespace keys are UI-language-independent constants, defined in.

此字段包含页面的名称空间的编号. 对于核心名称空间，值的范围为0到99，对于自定义名称空间，值的范围为100到10,000.

page_title
经过清理的页面标题，不带命名空间，最多255个字符(二进制). 它能存储为文本，並將空格替换为下划线. 文章中显示的真正标题只是将下划线(_)转换为空格的标题. 例如，标题为“Talk：Foo Bar”的页面在该字段中将显示“Foo_Bar”.

page_restrictions
一组用逗号分隔的权限键，指示谁可以移动或编辑页面. 编辑节和移动节之间用冒号分隔(例如， ，这串代码代表允许“自动确认用户、管理员”编辑，允许“管理员”移动).

page_counter
页面被查看的次数. 在MediaWiki 1.25中，该功能在从MediaWiki核心中删除命中计数器之后被完全删除. 在此之前，许多网站，包括维基媒体项目禁用它，以提高性能;有关详细信息， 请参阅.

page_is_redirect
这里的值“ ”表示文章是重定向的；在所有其他情况下为“ ”.

page_is_new
此字段存储页面是否为新页面，这意味着页面可能只有一个修订版本，或者自创建以来未被编辑过，即使有多个修订版本也是如此. 如果该字段包含值“ ”，则表示该页面是新的；否则为“ ”. 如果页面是新的，则不会显示回滚链接，因为没有东西可以回滚.

page_random
随机十进制值，介于0和1之间，用于Special:Random(有关详细信息，请参阅). 由產生

在2005年左右，一个错误导致这些随机值不一致. 由于该字段是在页面创建时设置的，因此长期存在的维基可能仍具有其中的一些错误值. 见Bug #T208909.

page_touched
此时间戳在页面发生更改时更新，需要重新呈现，从而使缓存失效. 除了编辑之外，还包括权限更改、链接页面的创建或删除以及包含模板的更改. 在创建页面时设置.

page_links_updated
每当重新解析页面时，都会更新此时间戳，并为其更新所有链接跟踪表. 这对于删除昂贵的反向链接更新作业非常有用. 当页面由创建时，设置为缺省值NULL.

page_latest
这是当前修订版本的rev_id的外键. 在页面创建过程中可能为0. 它需要链接到具有有效的的修订版本，否则当用户尝试查看该页面时，将会出现“页面“foo”的修订版#0不存在”的错误. 可以通过获得.

page_len
页面当前源文本的未压缩长度(以字节为单位).

但是，这不适用于在该表中仍有记录的图像. 相反，使用文件的 的未压缩长度，因为后者在 字段中.

中的 类有两个方法，即负责填充这些详细信息的 和.

page_content_model
内容模型，请参阅Content_Model_XXX常量. 相当于.

page_lang
页面的内容语言 设置为创建页面时的默认值NULL.



架构摘要
++-+--+-+-++ ++-+--+-+-++ ++-+--+-+-++
 * Field             | Type                | Null | Key | Default | Extra          |
 * page_id           | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
 * page_namespace    | int(11)             | NO   | MUL | NULL    |                |
 * page_title        | varbinary(255)      | NO   |     | NULL    |                |
 * page_restrictions | tinyblob            | YES  |     | NULL    |                |
 * page_is_redirect  | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * page_is_new       | tinyint(3) unsigned | NO   |     | 0       |                |
 * page_random       | double unsigned     | NO   | MUL | NULL    |                |
 * page_touched      | binary(14)          | NO   |     | NULL    |                |
 * page_links_updated | varbinary(14)      | YES  |     | NULL    |                |
 * page_latest       | int(10) unsigned    | NO   |     | NULL    |                |
 * page_len          | int(10) unsigned    | NO   | MUL | NULL    |                |
 * page_content_model | varbinary(32)      | YES  |     | NULL    |                |
 * page_lang         | varbinary(35)       | YES  |     | NULL    |                |

++-+--+-+++ ++-+--+-+++ ++-+--+-+++
 * Field             | Type                | Null | Key | Default        | Extra          |
 * page_id           | int(10) unsigned    | NO   | PRI | NULL           | auto_increment |
 * page_namespace    | int(11)             | NO   | MUL | NULL           |                |
 * page_title        | varbinary(255)      | NO   |     | NULL           |                |
 * page_restrictions | tinyblob            | YES  |     | NULL           |                |
 * page_is_redirect  | tinyint(3) unsigned | NO   | MUL | 0              |                |
 * page_is_new       | tinyint(3) unsigned | NO   |     | 0              |                |
 * page_random       | double unsigned     | NO   | MUL | NULL           |                |
 * page_touched      | binary(14)          | NO   |     |                |                |
 * page_links_updated | varbinary(14)      | YES  |     | NULL           |                |
 * page_latest       | int(10) unsigned    | NO   |     | NULL           |                |
 * page_len          | int(10) unsigned    | NO   | MUL | NULL           |                |
 * page_content_model | varbinary(32)      | YES  |     | NULL           |                |
 * page_lang         | varbinary(35)       | YES  |     | NULL           |                |

++-+--+-+++ ++-+--+-+++ ++-+--+-+++
 * Field             | Type                | Null | Key | Default        | Extra          |
 * page_id           | int(10) unsigned    | NO   | PRI | NULL           | auto_increment |
 * page_namespace    | int(11)             | NO   | MUL | NULL           |                |
 * page_title        | varbinary(255)      | NO   |     | NULL           |                |
 * page_restrictions | tinyblob            | NO   |     | NULL           |                |
 * page_is_redirect  | tinyint(3) unsigned | NO   | MUL | 0              |                |
 * page_is_new       | tinyint(3) unsigned | NO   |     | 0              |                |
 * page_random       | double unsigned     | NO   | MUL | NULL           |                |
 * page_touched      | binary(14)          | NO   |     |                |                |
 * page_links_updated | varbinary(14)      | YES  |     | NULL           |                |
 * page_latest       | int(10) unsigned    | NO   |     | NULL           |                |
 * page_len          | int(10) unsigned    | NO   | MUL | NULL           |                |
 * page_content_model | varbinary(32)      | YES  |     | NULL           |                |
 * page_lang         | varbinary(35)       | YES  |     | NULL           |                |

++-+--+-+-++ ++-+--+-+-++ ++-+--+-+-++
 * Field             | Type                | Null | Key | Default | Extra          |
 * page_id           | int(10) unsigned    | NO   | PRI | NULL    | AUTO_INCREMENT |
 * page_namespace    | int(11)             | NO   | MUL | NULL    |                |
 * page_title        | varchar(255) binary | NO   |     | NULL    |                |
 * page_restrictions | tinyblob            | NO   |     | NULL    |                |
 * page_counter      | bigint(20) unsigned | NO   |     | 0       |                |
 * page_is_redirect  | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * page_is_new       | tinyint(3) unsigned | NO   |     | 0       |                |
 * page_random       | real unsigned       | NO   | MUL | NULL    |                |
 * page_touched      | binary(14)          | NO   |     | NULL    |                |
 * page_links_updated | varbinary(14)      | YES  |     | NULL    |                |
 * page_latest       | int(10) unsigned    | NO   |     | NULL    |                |
 * page_len          | int(10) unsigned    | NO   | MUL | NULL    |                |
 * page_content_model | varbinary(32)      | YES  |     | NULL    |                |
 * page_lang         | varbinary(35)       | YES  |     | NULL    |                |

++-+--+-+-++ ++-+--+-+-++ ++-+--+-+-++
 * Field             | Type                | Null | Key | Default | Extra          |
 * page_id           | int(10) unsigned    | NO   | PRI | NULL    | AUTO_INCREMENT |
 * page_namespace    | int(11)             | NO   | MUL | NULL    |                |
 * page_title        | varchar(255) binary | NO   |     | NULL    |                |
 * page_restrictions | tinyblob            | NO   |     | NULL    |                |
 * page_counter      | bigint(20) unsigned | NO   |     | 0       |                |
 * page_is_redirect  | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * page_is_new       | tinyint(3) unsigned | NO   |     | 0       |                |
 * page_random       | real unsigned       | NO   | MUL | NULL    |                |
 * page_touched      | binary(14)          | NO   |     | NULL    |                |
 * page_links_updated | varbinary(14)      | YES  |     | NULL    |                |
 * page_latest       | int(10) unsigned    | NO   |     | NULL    |                |
 * page_len          | int(10) unsigned    | NO   | MUL | NULL    |                |
 * page_content_model | varbinary(32)      | YES  |     | NULL    |                |

++-+--+-+-++ ++-+--+-+-++ ++-+--+-+-++
 * Field             | Type                | Null | Key | Default | Extra          |
 * page_id           | int(10) unsigned    | NO   | PRI | NULL    | AUTO_INCREMENT |
 * page_namespace    | int(11)             | NO   | MUL | NULL    |                |
 * page_title        | varchar(255) binary | NO   |     | NULL    |                |
 * page_restrictions | tinyblob            | NO   |     | NULL    |                |
 * page_counter      | bigint(20) unsigned | NO   |     | 0       |                |
 * page_is_redirect  | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * page_is_new       | tinyint(3) unsigned | NO   |     | 0       |                |
 * page_random       | real unsigned       | NO   | MUL | NULL    |                |
 * page_touched      | binary(14)          | NO   |     | NULL    |                |
 * page_latest       | int(10) unsigned    | NO   |     | NULL    |                |
 * page_len          | int(10) unsigned    | NO   | MUL | NULL    |                |
 * page_content_model | varbinary(32)      | YES  |     | NULL    |                |

+---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * Field            | Type                | Null | Key | Default | Extra          |
 * page_id          | int(10) unsigned    | NO   | PRI | NULL    | AUTO_INCREMENT |
 * page_namespace   | int(11)             | NO   | MUL | NULL    |                |
 * page_title       | varchar(255) binary | NO   |     | NULL    |                |
 * page_restrictions | tinyblob           | NO   |     | NULL    |                |
 * page_counter     | bigint(20) unsigned | NO   |     | 0       |                |
 * page_is_redirect | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * page_is_new      | tinyint(3) unsigned | NO   |     | 0       |                |
 * page_random      | real unsigned       | NO   | MUL | NULL    |                |
 * page_touched     | binary(14)          | NO   |     | NULL    |                |
 * page_latest      | int(10) unsigned    | NO   |     | NULL    |                |
 * page_len         | int(10) unsigned    | NO   | MUL | NULL    |                |

+---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * Field            | Type                | Null | Key | Default | Extra          |
 * page_id          | int(10) unsigned    | NO   | PRI | NULL    | AUTO_INCREMENT |
 * page_namespace   | int(11)             | NO   | MUL | NULL    |                |
 * page_title       | varchar(255) binary | NO   |     | NULL    |                |
 * page_restrictions | tinyblob           | NO   |     | NULL    |                |
 * page_counter     | bigint(20) unsigned | NO   |     | 0       |                |
 * page_is_redirect | tinyint(3) unsigned | NO   |     | 0       |                |
 * page_is_new      | tinyint(3) unsigned | NO   |     | 0       |                |
 * page_random      | real unsigned       | NO   | MUL | NULL    |                |
 * page_touched     | binary(14)          | NO   |     | NULL    |                |
 * page_latest      | int(10) unsigned    | NO   |     | NULL    |                |
 * page_len         | int(10) unsigned    | NO   | MUL | NULL    |                |

+---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * 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) binary | 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      | real unsigned       | NO   | MUL | NULL    |                |
 * page_touched     | char(14) binary     | NO   |     | NULL    |                |
 * page_latest      | int(8) unsigned     | NO   |     | NULL    |                |
 * page_len         | int(8) unsigned     | NO   | MUL | NULL    |                |

索引
 +---++-+--+--+---+-+--++--++-+---+ +---++-+--+--+---+-+--++--++-+---+ +---++-+--+--+---+-+--++--++-+---+
 * Table | Non_unique | Key_name                   | Seq_in_index | Column_name      | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
 * page |          0 | PRIMARY                     |            1 | page_id          | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          0 | page_name_title             |            1 | page_namespace   | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          0 | page_name_title             |            2 | page_title       | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_random                 |            1 | page_random      | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_len                    |            1 | page_len         | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_redirect_namespace_len |            1 | page_is_redirect | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_redirect_namespace_len |            2 | page_namespace   | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_redirect_namespace_len |            3 | page_len         | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |



示例MySQL代码


列出页面以及与其他基本表格的关系
以下代码将选择所有文章的最新版本，假设压缩或外部存储系统未在使用中：

其它重要考虑：


 * 要查找未删除的页面，请添加
 * 要在名字空间中查找页面，请添加
 * 要查找不是重定向的页面，请添加

这些附加语句可以作为条件添加到WHERE语句中，也可以作为相应的INTERNAL JOIN语句上的条件添加.

