Revision table/ja
From MediaWiki.org
| ↑ Manual:Contents/ja | MediaWiki データベース レイアウト | Revision table/ja |
Contents |
Revision テーブル は、wiki の中でページにされたすべての編集のためにメタデータを保持します。すべてのページの編集はリビジョンレコードを生成し、そしてそれは編集をした利用者、編集がされた時間、及び、新しい wiki テキストへの参照のような情報を Text テーブルの中に保持します。
ここで留意すべきは、レコードは新しい wiki テキストの一部が編集操作についてであり、一部がその編集操作の結果である事です。それは古い wiki テキストに参照を与えません。
別の wiki からのページの最後のリビジョンのインポートは、Revision テーブルの中に2つのエントリーを作りますが、1つは日付とインポートされたリビジョンの wiki テキストで、もう1つはインポートの日付です。現在のページになる最新の wiki テキストは、同じ名前のページが既に存在している場合には、2つのページのなかで、より最近のものです。
Revision テーブル は Recentchanges テーブルに非常に類似しています。Revision テーブル は ページの履歴 と 利用者の投稿記録 リストのために使用されます。Recentchanges テーブル は、最近更新したページ、リンク先の更新状況、ウォッチリスト、そしてページが生成された場合の 特別:新しいページ のために使用されます。
差分のインクルード:
- Recentchanges テーブルはページの過去のリビジョンも参照します。
- Recentchanges テーブルはページの移動と削除のようなログイベントも記録します。
- Recentchanges テーブルの項目は定期的に消去されます; Revision テープル でのそれらは通常ではもっと長く、あるいはいつまでも保持されます。
- 説明の通り、ページリビジョンの インポート がインポート日付のみで Revision テーブルへのエントリーを加えるだけではありませんが、しかしオリジナルの日付のものもあります。
[edit] フィールド
[edit] rev_id
このフィールドはそれぞれのリビジョンのために主キーを保持します。
[edit] rev_page
このフィールドはリビジョンに関係する page の参照を保持します。このフィールドの中の番号は当該のページの page_id フィールドと等しくなります。 これは決して無効であるべきではありません。
[edit] rev_text_id
これは、実際の大量のテキストが保管されている Text テーブルの中の old_id へのポインタです。複数のリビジョンで同じテキストを使うことは可能です。 — 例としては、メタデータのみが改訂出来る、あるいは以前のバージョンにロールバックされるリビジョンです。
[edit] rev_comment
このフィールドは編集者の 編集内容の要約 (編集者のリビジョンでのコメント) を保持します。このテキストは、履歴と、利用者の投稿記録 で表示されます。 ( Recentchanges テーブル は 最近更新したページ、リンク先の更新状況、ウォッチリスト、そしてページが生成された場合での 新規ページのリストで使用するためのコピーを格納します。) それは、不適切な部分を削除された wiki マークアップのサブセットでレンダリングされます。
[edit] rev_user
これは、編集をした利用者の user_id と同じで。このフィールドは、匿名の編集、初期化スクリプト、そして一部のまとまったインポートで 0 の値になります。
[edit] rev_user_text
このフィールドは編集者の利用者名のテキスト、あるいはリビジョンが無登録の利用者によってされた場合は編集者の IP アドレスを保持します。
[edit] rev_timestamp
編集の タイムスタンプ を保持します。
[edit] rev_minor_edit
利用者が 'これは細部の編集です' チェックボックスにマークをしたかどうか記録します。このフィールドの値が 1 である場合、編集は '細部の編集' として申告されています。; それ以外は 0 です。
[edit] rev_deleted
このフィールドは 削除システムへの将来の変更 のために予約されていて、まだ使用されていません。
[edit] rev_len
このフィールドはリビジョンの長さを、バイト単位で格納します。履歴ページで使用されています。
[edit] rev_parent_id
このフィールドはツリー構造 (The Adjacency List Model) のサポートを追加するために使用されます。
[edit] スキーマ概要
DESCRIBE revision により、MediaWiki 1.10 においては下記の内容を示します。:
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
DESCRIBE revision により、MediaWiki 1.9 以下 においては下記の内容を示します。:
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