Citadelのドキュメントを読んでいたところ、 BerkeleyDB を使用してデータを保存していると書かれていました。BerkeleyDB はキー/バリュー ストアであるため、このような単純なデータ モデルを使用して (Citadel は多くのことを行っているため) すべてのデータ関係をどのように管理できるのか疑問に思っています。
CREATE TABLE citadel (
key LONGBLOB INDEX,
data LONGBLOB
);
これは、NoSQL データベースを使用してモデル化された完全なアプリケーションを最終的に見る機会を与えてくれます。それでも、彼らがこれを行う方法に関するドキュメントは見つかりませんでした。
では、Citadel は BerkeleyDB のキー/値ストアのみを使用してどのようにデータを構造化するのでしょうか?
- 電子メールをユーザーにどのようにマッピングしますか?
- ユーザーは他のユーザーとどのように関連していますか?
- 連絡先はどのように保存されますか?
- 関連する電子メールの返信はどのように見つけられますか?
- メールはどのように表示済みとしてマークされますか?
そしてリストは続きます...