-1

新しいプロジェクトに取り組み始めました。このプロジェクトには、潜在的に数千のドキュメントを追跡することが含まれます。各ドキュメントは、少なくとも、タイトル、作成者、説明などのフィールドを持つテーブル (プライマリ ドキュメント テーブル) の行です。

ただし、各ドキュメントは、ファイル システム内でいくつかの異なる形式で表現されているか、少なくとも表現できます。

例えば:

(1) すべてのドキュメントの PDF バージョンが存在するか、少なくとも存在する必要があります。(2) PDF が存在する場合、PDF の各ページが画像ファイルに抽出されます。(3) 各ドキュメントのテキストが抽出されます。 PDF から、または他の方法で派生したもの。

したがって、システム内のすべてのドキュメントには、実際には複数の (ページ数によっては 50 以上の可能性がある) ファイルが関連付けられています。

私が最初にいたよりも簡潔にするために:

各ドキュメントには、1 つまたは複数の異なるデータ オブジェクト (pdf ファイル、jpg、テキスト) を関連付けることができます。ただし、数と種類は任意です。

当初、これらのデータ オブジェクトはサーバーに格納された単なるファイルであり、ディレクトリ構造を使用して整理されていました。例: /documents/{id}/images、/documents/{id}/pdfs など。ファイル システムを頻繁にスキャンする必要がないようにするために、このディレクトリ構造は多数のテーブルを使用して MySQL データベースで表現されました。および外部キー。ドキュメントに関するすべての情報 (ドキュメントに関連付けられているすべてのファイル) を取得するには、複雑な JOIN が必要でした。

MongoDB のような NoSQL ソリューションの方が優れているでしょうか? ドキュメントとそのデータ間の整合性をより確実にするために、最終的にすべてのファイルをデータベースに格納することに特に関心があります。

4

1 に答える 1

1

数千で NoSQL に移行しますか? MySQL、Postgres などの RDBMS を過小評価しないようにしましょう。何百万もの行を問題なく処理できます...ただし、アプリケーションが適切に作成されていることを確認してください。

于 2012-09-13T18:07:55.557 に答える