« 知らぬがホトケ | メイン | いちいち抜き差し »
エントリー付きの最近のTrackback表示のための準備作業
2004年10月21日
いま、pinappleさんからBBSで教えていただいたテンプレートを使って、左側のサイドバーに「最近のトラックバック」を表示しています。これはエントリーの最新順に、トラックバックされたものが表示されているのです。
とても便利になりました!>どうもありがとう!pinappleさん

ここでひとつ問題が...
ずいぶん前のエントリーに、最近トラックバックしていただいんたんです。
それが表示されないんです...涙。
そこで、エントリー付き最近のTrackbackの表示にいつものTomcat5.5(またかよっ)でチャレンジです。
#Tomcat上で動かした結果をSSIで取得するのだ。(←邪道)
とはいっても、サイドバーを表示するたびに毎回動的にjspが実行されてしまうので負荷がかかるし、やってみて納得するだけかもしれません。

「もしかして、Tomcat5.5にWebキャッシュみたいな機能ありましたっけ?あったらいいなぁ~」
「いやまて、もしWebキャッシュできたとしても、Databaseの中身がアップデートされてたら駄目じゃん..」
なんて、余計なこと考えたりもして。

話を元にもどして...

前提条件...MovableType3.01DにPostgreSQLを使っています。

参照するテーブルのチェック

(1)mt_trackback...あらかじめトラックバックを許可している
   エントリー毎にレコードが作成される(らしい)。
        Column         |            Type             | Modifiers
-----------------------+-----------------------------+-----------
 trackback_id          | integer                     | not null
 trackback_blog_id     | integer                     | not null
 trackback_title       | character varying(255)      |
 trackback_description | text                        |
 trackback_rss_file    | character varying(255)      |
 trackback_url         | character varying(255)      |
 trackback_entry_id    | integer                     | not null
 trackback_category_id | integer                     | not null
 trackback_passphrase  | character varying(30)       |
 trackback_is_disabled | smallint                    |
 trackback_created_on  | timestamp without time zone | not null
 trackback_modified_on | timestamp without time zone | not null
 trackback_created_by  | integer                     |
 trackback_modified_by | integer                     |

(2)mt_tbping...トラックバックされたときに作られる(らしい)。
       Column       |            Type             | Modifiers
--------------------+-----------------------------+-----------
 tbping_id          | integer                     | not null
 tbping_blog_id     | integer                     | not null
 tbping_tb_id       | integer                     | not null
 tbping_title       | character varying(255)      |
 tbping_excerpt     | text                        |
 tbping_source_url  | character varying(255)      |
 tbping_ip          | character varying(15)       | not null
 tbping_blog_name   | character varying(255)      |
 tbping_created_on  | timestamp without time zone | not null
 tbping_modified_on | timestamp without time zone | not null
 tbping_created_by  | integer                     |
 tbping_modified_by | integer                     |

(3)現在のmt_tbpingの中身
 tbping_id | tbping_tb_id |                     tbping_title
-----------+--------------+-----------------------------------------------------
        10 |           31 | なぜ日記 (のようなもの) を公開するのか
         3 |            2 | コメントができないの・・・
         4 |            5 | プレビュー画面の不具合修正
         6 |            5 | MT3.0コメントプレビューのバグ?
         7 |            8 | 文字コードの悪夢
         8 |           10 | 今日のアタッカーさん
        13 |            6 | MySQLの設定ではお世話になりました。
        14 |           36 | フィッシング詐欺にご注意下さい
        15 |           83 | New BMW 1シリーズ、国内正式発表10月9日より発売開始!
        16 |           83 | BMW1シリーズ試乗
        17 |           63 | カスタム・タグを作ろうとしてハマる
        19 |           91 | 明日は洗車するぞ~
        20 |           83 | ■トートバッグもらえず、、、
        21 |           84 | もしかして: 女子高生
        26 |           93 | デビューフェアのDMについていたCD、見ました。
        27 |           99 | 素敵な彼と彼の音楽


「ほぅ~そうか、もしかして...
mt_trackback.trackback_idと、mt_tbping.tbping_tb_idとが結合できて、
mt_torackback.trackback_entry_idが、mt_entry.entry_idとが結合できるのかな?」
っと予測。

ためしに、上記(3)の一行目のmt_tbping.tbping_tb_id=31から、下記のクエリを実行。
(mt_entryからentry_titleを取ってきました。)
=> select entry_title from mt_entry
-> ,mt_trackback
-> where trackback_id = 31
-> and trackback_entry_id = entry_id;
entry_title
---------------------------------
なぜ、Web上で日記を書くのか??

「エントリータイトルがまったくおんなじっ!!」
『大あたり』だったけれど.....

もしかして...正規化されてない?
entry_titleとtbping_titleの違いってナンですか?

投稿者 megu : 2004年10月21日 18:57

コメント

コメントしてください




保存しますか?