私は文献を読みました。 判明しましたが、特に驚くことではありませんでしたが、ファイルをファイルとして保存することには多くの利点があります。
- スピード。 おそらく最も重要な利点の1つです。 実際、データベースに保存するときは、画像を表示するために次のアクションを実行する必要があります。データベースからストリームを読み取り、一時ファイルを作成し、ストリームを書き込みます。 ファイルシステムから、それを数えるだけで十分です。
- 普遍性。 通常の画像は多くのアプリケーションに使用できます:ftpで送信、メールに追加、ブラウザで表示。 データベースのバイナリデータを最初に変換する必要があります。
- 実装の容易さ。 ファイルをサーバーにアップロードし、テーブルへのリンクを保存する方が、同じテーブルにバイナリデータを保存するロジックを実装するよりも簡単です。 そして、シンプルさは開発と変更の速度です。 時は金なり。
- また、ベースが突然隠蔽された場合(バックアップがないと想像してください)、少なくともイメージは失われません。
データベースへのファイルの保存には、明確なプラスの1つがあります。 しかし、そのような注意は画像にしばしば必要ですか? また、ファイルシステムをデータベースと同期することは非常に困難です。レコードを削除したので、ファイルを削除する必要があります。 データベースでは、これはBLOBを使用して対応するレコードをカスケード削除することにより、1ターンで解決されます。
多くの問題において、どのアプローチにも明らかな利点はありません。 たとえば、データベースとファイルシステムの両方に対してバックアップを実行できます。
評決はそのようなものです。 これは、アプローチの1つがより正しいと言うことではありません。 正確さはタスクによって決定されます。 より簡単な方法は、画像をファイルとして保存する標準的な方法です。 ただし、一部のタスクでは、データベースの方が適しています。