- 2005-03-11 (金)
- Movable Type
Googleでちらっと調べてみたところ見当たらなかったので作ってみました。Movable Type 2.6系のものと、3.0 〜 3.151 (現在最新版)のものと、2種類それぞれ用意してます。作成動機は、先日MT2.6から最新版の3.151にアップグレードした際に発生した諸所のデータ的不備/不具合を、「直接SQL叩いて直しちまえ」と思い立った事にあります(もちろんHack的好奇心もありましたけど)。テーブル相関を理解→不具合箇所をピンポイントで修復@SQLで、無事解決できました。bashi 同様にデータがなんかおかしくなっちゃって、SQL叩いて直したい!と願う方、Movable TypeのEntity Relationshipに興味ある方、自作CMSの参考にしたい方、等々 誰かの役に立ってくれる事があれば幸いです。
Movable Type 3.x 系のER図&テーブル定義
左がER図、右側がテーブル定義書(のサンプル)になります。※共に100%サイズの画像へのリンクを張ってあります。その他多数テーブル定義書とER図を1つのPDFにまとめてあるので、詳細情報を見てみたい方はコチラからPDFをダウンロードしてください。ER図で 2.6.x と異なる点は唯一、新規テーブル mt_fileinfo が加わった事くらいです。各種テーブル定義で 2.6.x と異なる箇所については「背景色グレー」で示してあります(新カラムの追加か、カラム長の変更の2種類)。
Movable Type 2.6.x 系のER図&テーブル定義
テーブル定義&ER図をまとめたPDFはコチラです。ER図は基本的に3.xのものと大差ありません(mt_fileinfo テーブルが無いくらい)。
あとがき
- テーブル定義書の方の各種カラムタイプはすべて PostgreSQL での定義です(自分とこの環境がPostgreSQLだったので)。MySQL でもタイプ名が違うくらいで、大差ないであろう事から、別途調査&記述はしませんでした。
- 各テーブルそれぞれの説明/利用用途については Technow Movable Type のこの記事で把握可能かと思います。
- ER図上、文字色:ピンクで示してありますが、ER的には不要な(冗長性のある)カラムが多くて驚き... といっても、考えてみたらMTは元々データベース前提で組まれたシステムじゃ無いだろうから、そりゃそうかもね、てな感じでした。
- mt_entry → mt_trackback → mt_tbping の関係が意外でした。mt_entry から直接 mt_tbping へは繋がらないのかぁ。
- ER図上の mt_fileinfo への線結びはかなり想像で描いたものです。外部ファイル参照機能自体使ったことないので。「まあこんなもんだろ」なノリでいってます。
- MT::Object 等々の内部モジュールの挙動を把握した上で作ったわけでは無く、単純に各種テーブル定義と主キーとなる項目とをヒントに、ぐりぐりと線を結んでいっただけなので、詳細レベルで間違いがあるやもしれません。中途半端ですんません...
関連情報
Tecknow Movable Type の記事「MT API の基礎(2)」
movabletype.jp OfficalのMT Hack系情報BLOG。MT::Objectの説明記事にて各種テーブルの存在定義・説明情報を得ることが出来ました。naoya氏感謝。
システム管理の操作記録や趣味のサッカーを中心にさんの記事「MovableType のデータベーススキーマ」
各種テーブルについての説明をしてくれています。中でも mt_placement の説明にて
mt_entryテーブルにもcategory_idを入れるカラムがあるが、こちらは実際には使われていない
等とパッと見ただけじゃわからない様な情報も拾うことができました。感謝です。