Movable Typeのテーブル-mt_category

Last Updated:2006/3/02 12:15

実際にMySQLのデータはどうなっているんだろう?と、
Movable Typeのテーブルをひとつずつ見ていこうと思います。

個人的に、MTタグとテーブルの各フィールドが結びつくと、判りやすく感じたので、後で役立つかな、と。。。

今日はカテゴリーの詳細を格納しているmt_categoryを確認してみました。
テーブルのフィールドタイプはまだ未確認のところもあるのでとりあえず放置。。。

基本的な構造

mt_categoryのテーブルは以下の様になっている。
(上半分がテーブルの構造、下半分が例としてこのサイトのmt_category)

フィールドcategory_idcategory_blog_idcategory_allow_pingscategory_labelcategory_descriptioncategory_author_idcategory_ping_urlscategory_parent
フィールドタイプint(11)int(11)tinyint(4)varchar(100)textint(11)textint(11)
空の値(NULL)いいえいいえはいいいえはいはいはいはい
基本値 0NULL NULLNULLNULLNULL
追加auto_increment       
 category_idcategory_blog_idcategory_allow_pingscategory_labelcategory_descriptioncategory_author_idcategory_ping_urlscategory_parent
 110Stagesハマってしまったナマ舞台について1 0
 210Musicals観劇メモ(ミュージカル)1 1
 310Plays観劇メモ(演劇)1 1
 510PCパソコン周りの覚え書きです。使っているソフトのメモ等。1 0
 610Softwears優れたフリーソフトの使い方メモ。1 5
 710Webネットジャンキーなので色々。某サイト作成メモなど。1 0
 810Serverサーバーの設定について1 7
 910Systemsローカルで重宝するソフト色々1 6
 1011MTMovable Typeについて1 7
 1210Aboutこのサイトについて1 0

このテーブルを生成するsql文は、
[MTディレクトリ]/schemas/mysql.dumpに書かれている。


create table mt_category (
    category_id integer not null auto_increment primary key,
    category_blog_id integer not null,
    category_allow_pings tinyint,
    category_label varchar(100) not null,
    category_description text,
    category_author_id integer,
    category_ping_urls text,
    category_parent integer,
    unique (category_blog_id, category_label)
);

integer:intのシノニム(同義語)。正式な語がinteger。

フィールドタイプ
そのフィールドの属性(収めるデータの種類)を指定する。
see:MySQL リファレンスマニュアル :: 6.2 カラム型
int(11)
数字型フィールド。
ここでは11桁の整数まで格納可。
つまり、99,999,999,999個までカテゴリーが作れる(作成して削除したカテゴリも含む)・・・?
tinyint(4)
非常に小さな整数の数字型フィールド。
ここでは4桁の整数まで格納可。
varchar(100)
可変長文字列。
ここでは0〜100バイトの文字列を格納できる。
text
無制限にテキストを格納できる。
空の値・基本値
『空の値』が「はい」だと、『基本値』が「NULL」(NULL=値が無い状態。空文字(スペースやゼロ)ではない。
追加
ここで"auto_increment"が指定されると、そのフィールドにはユニークな値が格納される。

各フィールドの詳細

category_id
そのカテゴリーのレベルに関わらず(トップカテゴリー、子カテゴリーに関わらず)、作成された順に整数が割り振られる。
MTタグの<$MTCategoryID$>と等しい。
category_blog_id
そのカテゴリーが属するブログID。
1つのMT上でブログを複数運営していると、異なるIDが並存することになる。
category_allow_pings
そのカテゴリーがトラックバックを受け付ける設定にしているか否か。
受け付ける場合"1"、受け付けない場合"0"が格納される。
category_label
そのカテゴリーの名前。
MTタグの<MTCategoryLabel>と等しい。
category_description
そのカテゴリーの説明。
MTタグの<MTCategoryDescription>と等しい。
category_parent
そのカテゴリーの、直接の親に当たるカテゴリーのcategory_idの値が入る。
そのカテゴリーがトップカテゴリーの場合は"0"。
ちなみに、このサイトのカテゴリーのツリーは以下の様になっている。
上のcategory_idとcategory_parentの値と照らし合わせると判りやすいかも。
(カテゴリーのツリー構造がどことなくおかしいのはこちらの都合です。)

[N]がcategory_id、(M)がcategory_parent

[1]Stages (0)
  ├[2]Musicals (1)
  └[3]Plays (1)
[5]PC (0)
  └[6]Softwears (5)
     └[9]Systems (6)
[7]Web (0)
  ├[8]Server (7)
  └[10]MT (7)
[12]About (0)

Created On:2005/2/27 23:51