1

UserCake と PHPMyEdit で開発された PHP Web サイトと、MySQL に保存されたデータがあります。現在、さまざまなユーザーのアクセス許可を制御できるようにPDFファイルのアップロードも行いたいと考えています。また、ソリューションは多数のファイルのアップロードに対しても機能する必要があります。

PDFファイルをMySQLに保存することが私の目的にとって良い解決策であることを知りたいですか?

そうでない場合、最善の解決策は何ですか?

どうも、

4

2 に答える 2

3

データベースにバイナリを保存することは、通常、あまり良い考えではありません。

データベースに格納する利点:

  • これにより、DB のセキュリティ メカニズムを利用できます。
  • また、データベースに BLOB を保存すると、ファイル名の重複について心配する必要がなくなります。
  • また、アップロードに問題が発生した場合、トランザクションをロールバックするだけでよく、壊れたファイルを探し回ってディスクから消去する必要はありません。

データベースに格納することの欠点:

  • ファイルを書き込むにはシリアル化し、読み取るにはシリアル化を解除する必要があります。これは、ファイルの書き込み/読み取りよりもはるかに遅くなります。
  • より高いメモリ使用量 (多くの行を含む結果セットをロードすることを想像してください。すべてが blob です)。
  • データベースのバックアップが非常に重く、遅くなります。
  • 通常、ブロブは 4kb のチャンクでデータベースに転送されるため、それよりも大きなファイルでは非常に多くのオーバーヘッドが発生します。

通常、データベースからファイル パスを取得し、ファイルをユーザーに直接ストリーミングする方が高速です。

EDIT:私はそれを考え抜いて、データベースに保存することのさらに2つの利点を思いつきました. 悪魔の擁護者を演じるために編集するだけで、すべての情報が提供され、どのアプローチが自分のケースに適しているかを自分で判断できます。

于 2013-03-05T17:44:43.737 に答える
0

PDFへの相対パスをデータベースに保持できます。このようにして、DBのすべてのオーバーヘッドを回避できます。

PDF自体を保存している場合、それは非常に強力な理由によって正当化される必要があります。

于 2013-03-05T17:50:38.380 に答える