Manual:Old table/ja

< Help:Mediawikiアーキテクチャ < Help:データベースレイアウト

old table（old テーブル）は各ページの過去の版を保存するためのテーブルです. ほとんどのフィールドは cur テーブルのフィールドと一致します.

古い版のテキストは old_flag フィールドが示した位置に gzip で圧縮して保存されています. 圧縮には PHP関数の gzdeflate を使用しています. そのため、PHPで読み出す場合以外には gzip ヘッダがなく、ウィンドウサイズが -1 に指定されている事に注意する必要があります.

old_id は各版に付けられた固有のインデックスであり、いくつか注意点が有ります.
 * cur テーブルは常に最新の版を old テーブルとは別に保存しているため、old テーブルの id は cur により新しい版が保存されるまで生成されません.
 * archive テーブルはページの ID を保存しないため、一度削除し、restor したページのID は異なったものとなります. （削除したページの old_id が再利用される事は有りません. ）
 * old_id は必ずしも作成順に付けられるとは限らず、ページの版間での差分を作成するためだけに使用されます.

old_timestamp についても個別に作成されるものであるため、あるページの履歴の中で必ずしも固有の値を持つとは限りません.

oldテーブルの構造
"DESCRIBE old" の情報:

+---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * Field            | Type                | Null | Key | Default | Extra          |
 * old_id           | int(8) unsigned     |      | PRI | NULL    | auto_increment |
 * old_namespace    | tinyint(2) unsigned |      |     | 0       |                |
 * old_title        | varchar(255) binary |      |     |         |                |
 * old_text         | mediumtext          |      |     |         |                |
 * old_comment      | tinyblob            |      |     |         |                |
 * old_user         | int(5) unsigned     |      |     | 0       |                |
 * old_user_text    | varchar(255) binary |      |     |         |                |
 * old_timestamp    | varchar(14) binary  |      |     |         |                |
 * old_minor_edit   | tinyint(1)          |      |     | 0       |                |
 * old_flags        | tinyblob            |      |     |         |                |
 * inverse_timestamp | varchar(14) binary |      |     |         |                |