MLドライバはメールのさまざまな要素をデータとして保存する必要がありま す。しかしながら、永続的に持つべきデータと、一定時間経過後に捨てて良い データがあります。
前者の例はスレッドのデータです。一方、後者の例はフィルタシステムの持っ ている message-id cache などです。スレッドデータベースも同じく message-id のデータを持っていますし、記事の分については重複しています。 ですが、2つの有効期間は異なるため別々に取り扱う必要があります。
とはいえ実際問題スレッド関係とそれ以外に集約できそうなので、 各モジュールの理想的な関係は次のようになるのでしょう。
モジュールA ---|ア|----- スレッド DB モジュールB ---|ダ| モジュールC ---|プ| モジュールD ---|タ|----- キャッシュ (有効期限つき)このスレッド DB は Mail::Message::DB のようなものとし、アダプタ層が差異を吸収して欲しい。 キャッシュについては、現在のところ Tie::JournaledDir もしくは FML::Cache::Ring のいづれかが使われることとなっています。
なお、 メンバーリストなどの永続性の必要なデータに対してデータベースを使う場合は、 本来、きちんとした DBMS (データベース管理システム)を使うべきです。
本章で述べるデータベースはそれとは異なり、 fml8 が動作する上で内部的に使っているデータベースのことです。
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>.