Manual:Page table/ja

Pageテーブル は "wiki の核心" と見なせます. MediaWiki インストレーションでのそれぞれのページは、タイトルによってそれを識別するここのエントリーを持ち、いくつかの不可欠なメタデータを格納します. これは MediaWiki 1.5 r6710 において、最初に導入されました.

ページそれ自身のテキストは Text テーブル で保管されます. 記事のテキストを読み出すために、MediaWiki はこのテーブルで最初に page_title を検索します. それから、 Revision テーブルで rev_id を検索するためにpage_latest が使用されます、そして rev_text_id がプロセスの中で獲得されます. rev_text_id で獲得された値はテキストを読み出すために Text テーブルで old_id を検索するために使用されます.

データベースから手動でページを完全に削除したい場合、Page テーブル内のページのエントリーそして Revision テーブル内のすべてのページのリビジョン及び Text テーブル内のページにのみ対応しているテキストレコードのすべて、を削除することを確実に行ってください. これはページのレコードを削除し、それから maintenance/deleteOrphanedRevisions.php を走らせる事により行う事が出来ます.

page_id
ユニークに識別をする主キー. この値は編集と名称変更の時にわたって維持されていて、削除と再作成の時はそうではありません. There is an analogous field to preserve this value in MediaWiki 1.11 and later; however, it is not used in Special:Undelete, the interface for undeleting pages used by project administrators.例えば、このページです. page_id = 10501. 

page_namespace
ページ名は、名前空間とタイトルで構成されます. 名前空間のキーは includes/Defines.php で定義されたユーザーインターフェイス言語に依存しない定数です.

このフィールドはページの名前空間の番号を格納しています. 値は 0 から 15 までが標準名前空間で、100 から 255 までがカスタム名前空間の範囲です.

page_title
The sanitized page title, without the title of its namespace with a maximum of 255 characters (binary), e.g. "[255 chars]" or "Talk:[255 chars]" or "Category discussion:[255 chars here]". It is stored as text, with spaces replaced by underscores. The real title showed in articles is just this title with underscores (_) converted to spaces.

page_restrictions
誰がページの移動または編集が出来るのかを示す、カンマ区切りのパーミッションキーのセット.

MediaWiki1.10 を発端に、ページ保護のコントロールは Page restrictions テーブル に移されました. so this field will be empty in databases generated by more current versions of MediaWiki.

page_counter
このページが見られた回数. ここで留意すべきなのは、このフィールドが増加するいくつかのサイト ( 例えば Wikimedia サイト )は、パフォーマンスを増やすようために無効にしている事です. - $wgDisableCounters グローバル変数をご覧ください.

page_is_redirect
値 1 は、ここに記事がリダイレクトであることを示しています. それ以外の場合は、0 です.

page_is_new
このフィールドは、ページが新規のエントリーかそうでないかを保管します. ; フィールドが 1 ほ含む場合、それはページがただ１回だけの編集の新しいエントリーであることを示します. それ以外の場合は、0 です.

page_random
ランダムな 0 と 1 の間の小数値で、特別:おまかせ表示のために使用されます.

page_touched
このタイムスタンプは、ページがキャッシュを無効にして、再レンダリングを要求し、ある意味で変化するときは、いつでも更新されます. 編集とは別に、これはパーミッションの変更、リンクされたページの生成あるいは削除、使用しているテンプレートの修正を含みます.

page_latest
これは現在のリビジョンのための rev_id への外部キーです. それはページ生成の間は 0 であるかもしれません.

page_len
ページの現在のソーステキストの圧縮していないバイト単位での長さ.

スキーマ概要
DESCRIBE page により MediaWiki 1.19 においては下記の結果を示します: +---+-+--+-+++ +---+-+--+-+++ +---+-+--+-+++
 * 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_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      | double unsigned     | NO   | MUL | NULL           |                |
 * page_touched     | binary(14)          | NO   |     |                |                |
 * page_latest      | int(10) unsigned    | NO   |     | NULL           |                |
 * page_len         | int(10) unsigned    | NO   | MUL | NULL           |                |

DESCRIBE page により MediaWiki 1.12 においては下記の結果を示します: +---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * 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    |                |

DESCRIBE page により MediaWiki 1.11 においては下記の結果を示します: +---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * 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)        | 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          | double 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    |                |

DESCRIBE page</tt> により MediaWiki 1.5 から 1.10 においては下記の結果を示します: +---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * 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    |                |

Indices
mysql> show index in page; +---++-+--+--+---+-+--++--++-+---+ +---++-+--+--+---+-+--++--++-+---+ +---++-+--+--+---+-+--++--++-+---+
 * 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         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          0 | name_title                  |            1 | page_namespace   | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          0 | name_title                  |            2 | page_title       | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_random                 |            1 | page_random      | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_len                    |            1 | page_len         | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_redirect_namespace_len |            1 | page_is_redirect | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_redirect_namespace_len |            2 | page_namespace   | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_redirect_namespace_len |            3 | page_len         | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |

サンプル MySQL コード
The following code will select the most recent versions of all articles in the wikidb:

Other important considerations:
 * to find undeleted pages add "r.rev_deleted = 0"
 * to find pages in namespace 0 add "p.page_namespace = 0"
 * to find pages that are not redirects add "p.page_id not in (select rd_from from wikidb.redirect)"

These additional statements can be added either as conditions to a Where statement or as conditions on the appropriate Inner Join statement.

関連項目

 * API:Database field and API property associations