[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .

スレッドシステムのデータベース

以下のようなデータベース群から スレッドシステムのデータベースは構成されています。

ファイル名      内容の例
----------------------------------------------
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

Notes

[1]

逆にいえば、現在、ドメインを超えたクロスポストは無視しているわけですね。 まぁ、あまりそういう要求は無いと思いますけど…

[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .
Copyright (C) 1993-2022 Ken'ichi Fukamachi mail:< fukachan at fml.org >