メタデータを持つドキュメントをWebアプリケーションに格納して、階層内で閲覧できるようにしたいとします。データベースではなくファイルシステムにいつメタデータを保存しますか?
これを行う典型的な方法は、各ドキュメントのデータベースエントリを作成し、メタデータをデータベースに格納し、ファイルシステムに格納することです。
ドキュメントとメタデータの両方をファイルシステムに格納する方がはるかに簡単で高速に思えます。ディレクトリは次のようになります
$ ls subdirectory
.json
Subsubdirectory
bar.pdf
bar.json
foo.tex
foo.json
次に、jsonファイル(または私が使用するフォーマット)からメタデータを取得できました。サブディレクトリ/ foo.jsonの内容に基づいてサブディレクトリ/foo.htmlをレンダリングすることができました。そして、サブディレクトリ/ .jsonの内容と他の子jsonファイルの内容に基づいて、subdirectory.htmlをレンダリングすることができました。
私が考えた主な欠点は、メタデータファイルの内容に基づいて検索することが難しいかもしれないということです(ファイルシステムレベルのメタデータに基づいて検索することはできますが)。他にどのような欠点がありますか?人々がこのアプローチを使用すると、なぜ私はそれについて聞かないのですか?
編集:私は本当に検索について心配していません。何らかの検索を行うと、おそらく単一の小さなディレクトリになります。
検索機能とは別に、すでにドキュメントにファイルシステムを使用している場合、メタデータを格納するためのデータベースとファイルシステムのアプローチに無関心であるようです。私の認識は正確ですか? –
また、データベースとファイルシステムの2つのアクセス権セットを管理し、それらのアクセスを多かれ少なかれ同期させなければなりません。 –
私は間違いなく 'mongoDB'を使って' json'を保存します。余分な情報をすべてのノードに検索または追加する必要がある場合は、FSに保管しないでください。膨大な数のファイルを保管している場合や大きなトラフィックがある場合は、再度FSに保管しないでください。 –