Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
13
Help us understand the problem. What is going on with this article?
@Hi_Noguchi

MovableType7(MT7)のテーブル構造

More than 3 years have passed since last update.

前提

MovableTypeって?

数多くある静的 CMS のうちの一つです。
公式サイト

MT7のver.について

7.α.0.2(2017/11/24 時点)

以前に書いた記事(MT4)

MovableType4(MT4)で使われるMySQLテーブルと各カラムの説明
MT4にはあってMT7にはないテーブル、また、その逆パターンもあります。

「要調査」となっている項目

調査しないとなー、と思っているものです。それ以外の項目も含めて、この記事については、色々と分かり次第、随時更新して参ります。

内部で使用されているデータベース

MySQL です。
というわけで、この中身をざっくり見ていきます。

mt

  • データベース名が mt です
  • 全 55 テーブル
  • 個別の各テーブルは以下の通り

mt_accesstoken

  • 要調査
  • accesstoken_session_id という id カラムがあるので、 mt_session に関連するらしい

mt_asset

  • asset (アイテム。画像とか)の管理
  • asset_blog_id で、どのブログで使われるかを決める

mt_asset_meta

  • アイテム管理に関連するmeta系テーブル。 mt_author_meta の項を参照

mt_association
- 「ユーザーが特定のブログに対してどういうロールを持っているかなどの関連付けを管理するためのもの」( @rryu さん曰く)

mt_author

  • ログインユーザ
  • 良かった、ちゃんとパスワードが暗号化されている……(MT4では暗号化されていなかった)

mt_author_meta

  • 「meta系のテーブルはMT::Authorなどのクラスのカラム定義で型がstring metaのようになっているものの保存に使われます。その他にカスタムフィールドの値の保存などに使われます」( @rryu さん曰く)

mt_author_summary

  • 要調査

mt_blog

  • ブログ管理
  • 「ブログ記事」ではない

mt_blog_meta

  • ブログ管理に関連するmeta系テーブル。 mt_author_meta の項を参照

mt_category

  • ブログ記事とかウェブページとかに設定できる「カテゴリ」管理
  • category_blog_id で、どのブログで使われるかを決める

mt_category_meta

  • カテゴリ管理に関連するmeta系テーブル。 mt_author_meta の項を参照

mt_category_set

  • 要調査
  • category_set_blog_id で、どのブログで使われるかを決める

mt_cd

  • cd は content_data の略っぽい
  • cd_blog_id で、どのブログで使われるかを決める
  • cd_content_type_id で、どの Content Types で使われるかを決める
  • cd_data にJSON形式で諸々の値が格納されている( @rryu さん、コメントありがとうございました)
  • cd_data は mediumblob 型。このカラムを認識しないクライアントソフトがあるようです

mt_cd_meta

  • content_data に関連するmeta系テーブル。 mt_author_meta の項を参照

mt_cd_rev

  • 要調査
  • cd_rev_cd_id が、mt_cd の cd_id なので、mt_cd についての revision 管理?

mt_cf

  • Content Types の各フィールド定義情報と思われる
  • cf は content_fields の略っぽい
  • cf_blog_id で、どのブログで使われるかを決める
  • cf_content_type_id で、どの Content Types で使われるかを決める
  • cf_related_content_type_id ? 要調査

mt_cf_idx

  • mt_cd, mt_cf, mt_content_type とを結びつけるインデックス用のテーブルっぽい( @rryu さん、コメントありがとうございました)
  • cf_idx は content_field_index の略で間違いなさそう
  • cf_idx_content_data_id : mt_cd の id
  • cf_idx_content_field_id : mt_cf の id
  • cf_idx_content_type_id : mt_content_type の id

mt_comment

  • コメント管理
  • comment_blog_id と comment_entry_id とで、どれへのコメントかが決まる

mt_comment_meta

  • コメント管理に関連するmeta系テーブル。 mt_author_meta の項を参照

mt_config

  • MT全体の設定
  • 1レコード1カラム内に、改行区切りで大量の設定が書かれている

mt_content_type

  • Content Types の親
  • content_type_blog_id で、どのブログで使われるかを決める
  • 何でこれだけ略していないのか……

mt_entry

  • 記事管理
  • 「ブログ記事」も「ウェブページ」も、全部このテーブル内で管理されている
  • ディレクトリはここで管理されていないらしい……
  • 各カラムについて(抜粋)
    • entry_id :固有キー
    • entry_blog_id :どのブログ内の記事か
    • entry_authored_on :公開日時(datetime型)
    • entry_atom_id :固有キーとか色々合成されているフィールド
    • 入力される書式例 : tag:hoge.com,2017:/blog_name//99.123456
    • 上記例の 2017 にあたる数字は、このレコードの entry_authored_on の year 部分である
    • 上記例の 99 にあたる数字は、このレコードの entry_blog_id である
    • 上記例の 123456 にあたる数字は、このレコードの entry_id である
    • entry_basename :ファイル名
    • entry_class :entry または page
    • entry :ブログ記事
    • page :ウェブページ
    • entry_title :タイトル
    • entry_text :本文
  • 他のカラムについてはこれから要調査

mt_entry_meta

  • 記事管理に関連するmeta系テーブル。 mt_author_meta の項を参照

mt_entry_rev

  • 要調査
  • entry_rev_entry_id が、mt_entry の entry_id なので、mt_entry についての revision 管理?

mt_entry_summary

  • 要調査
  • entry_summary_vinteger_id は、何の id ?

mt_failedlogin

  • ログイン失敗してアカウントロックされた記録

mt_field

  • カスタムフィールドのフィールド定義
  • field_blog_id で、どのブログで使われるかを決める
  • field_obj_type で、「ブログ記事」「ウェブページ」などのどこに表示されるか決まる

mt_fileinfo

  • 静的ページのファイル名・保存先ディレクトリなどの管理
  • 各カラムについて(抜粋)
    • fileinfo_id :固有キー
    • fileinfo_archive_type :よくわからない……
    • 値の例 :index, Page, Individual, Monthly
    • fileinfo_entry_id :mt_entryとの外部キー
    • fileinfo_file_path :サーバ内の絶対path
    • fileinfo_url :ドメイン以下のファイルpath
    • fileinfo_template_id :mt_templateとの外部キー
    • fileinfo_templatemap_id :mt_templatemapとの外部キー

mt_filter

  • 要調査
  • filter_blog_id で、どのブログで使われるかを決める
  • filter_author_id は、どのユーザーが作ったか?

mt_formatted_text

  • 要調査
  • formatted_text_blog_id で、どのブログで使われるかを決める

mt_ipbanlist

  • アクセス禁止IPの管理とか

mt_log

  • MTのシステムログ記録用
  • かなり巨大に膨れあがるので、後生大事にとっておく必要もなさそう

mt_notification

  • アドレス帳に登録されているメールアドレスに、MTの更新記録などを送信するための管理用
  • 内輪向けサイトなら使われることがあるのかな……

mt_objectasset

  • 記事とアイテムとを紐づけるための中間テーブル

mt_objectcategoy

  • 要調査
  • objectcategory_blog_id, objectcategory_category_id, objectcategory_cf_id, objectcategory_object_id … というように id が4つあるので、何らかの中間テーブル?

mt_objectscore

  • トピックや記事のお気に入り登録機能 のためのもの( @rryu さん曰く)

mt_objecttag

  • タグ管理

mt_permission

  • mt_author(ユーザ)の権限管理

mt_placement

  • カテゴリと記事とを紐付けるための中間テーブル

mt_plugindata

  • プラグイン管理

mt_role

  • 権限グループ

mt_session

  • セッションデータ
  • 定期的に掃除して良いと思われる

mt_tag

  • タグ管理
  • こちらは古い。 mt_objecttag が新しい( @rryu さん曰く)
  • MT7なのにまだ残ってる? 後方互換のため?

mt_tbping

  • トラックバック管理

mt_tbping_meta

  • トラックバック管理に関連するmeta系テーブル。 mt_author_meta の項を参照

mt_template

  • テンプレート管理
  • 各カラムについて
    • template_id :固有キー
    • template_blog_id :どのブログか
    • template_identifier : NULL許可という謎のフィールド
    • template_name :管理画面上で表示される名称
    • template_outfile :静的ファイルとして出力される場合のファイル名
    • template_text :本文
    • templatetype
    • 値の例 :index, archive, comment_preview, comment_response, dynamic_error, individual, popup_image, search_results, widget, widgetset…

mt_template_meta

  • テンプレート管理に関連するmeta系テーブル。 mt_author_meta の項を参照 mt_template_rev
  • 要調査
  • template_rev_template_id が、mt_template の template_id なので、mt_template についての revision 管理?

mt_templatemap

  • テンプレートが静的ファイルに出力される際の形式マスタ的な
  • templatemap_archive_type
    • 値の例 :Category, Individual, Page, Yearly, Monthly…

mt_touch

  • 要調査
  • touch_blog_id で、どのブログで使われるかを決める
  • touch_object_type の値が、 author, page, template, folder, category

mt_trackback

  • これもトラックバック管理

mt_ts_error

  • 主キー:ts_error_error_time(タイムスタンプ)

mt_ts_exitstatus, mt_ts_funcmap, mt_ts_job

  • 「TheSchwartzというジョブキューで使います。tools/run-periodic-tasks などで使用しています」( @rryu さん曰く)
  • デフォルトで存在しているんですね

MT4~7におけるテーブルの差

MT4にしか無いテーブル

  • というのは無い

MT6(あるいはMT5)で追加されたテーブル

  • mt_accesstoken
  • mt_author_summary
  • mt_entry_rev
  • mt_entry_summary
  • mt_failedlogin
  • mt_filter
  • mt_formatted_text
  • mt_template_rev

MT7で追加されたテーブル

  • mt_cd
  • mt_cd_meta
  • mt_cd_rev
  • mt_cf
  • mt_cf_idx
  • mt_content_types
13
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Hi_Noguchi
ピティナ(一般社団法人全日本ピアノ指導者協会) 本部 CTO / 株式会社東音企画 外部 CTO。 育休一年 ( 2019/03/01 ~ 2020/02/29 ) 取得完了!
piano
ピティナは音楽指導者の団体で、また世界最大のピアノコンクールを主催する団体でもあります。 「~音楽の必要性を社会に向けて立証する~」ため、エンジニアを採用し始めました!!

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
13
Help us understand the problem. What is going on with this article?