以下のようなデータベース群から スレッドシステムのデータベースは構成されています。
ファイル名 内容の例 ---------------------------------------------- status open / close ml_name elena article_id 100 thread_id elena/100 from ヘッダの From: (めーる@アドレスの形式) sender ヘッダの Sender: (めーる@アドレスの形式) x_sender ヘッダの X-Sender: (めーる@アドレスの形式)たとえば、BSD 上であれば status.db といった .db のファイル群のセットとなるわけです。
これらのファイル群は各MLのホームディレクトリではなく、
$ml_home_prefix/@db@/ML名/ 例 /var/spool/ml/@db@/ML名/というディレクトリに作られています。 これは、(特定のドメイン内 [1] にある)MLが相互に参照しあう拡張を想定しています。 たとえば「support/100 の記事は sales/98 を出発点としている」 といった情報を自動的にMLが教える機能を実装するための布石です。 残念ながら、現在のところは未実装です。
スレッドのデータベースは 「主に article_id か thread_id が primary key」 です。 具体的に書くと以下のようになります。
[thread .db] aritcle_id => thread_id [article .db] thread_id => article_ids Example: elena/100 => 100 101 103 105 [date .db] aritcle_id => unix_time [sender .db] article_id => from [message_id .db] mesasge_id => thread_id [status .db] thread_id => status [index .db] thread_id => "$ml_name " * Example: support/100 => support sales
[1] | 逆にいえば、現在、ドメインを超えたクロスポストは無視しているわけですね。 まぁ、あまりそういう要求は無いと思いますけど… |
author's homepage is www.fml.org/home/fukachan/.
Also, visit nuinui's world :) at www.nuinui.net.
For questions about FML, e-mail <fml-bugs@fml.org>.