顧客に送られた手紙の PDF をダウンロードできるようにする必要があります。
ドキュメントまたは画像のデータベース ストレージとファイル システム ストレージに関するスレッドを読んだことがあります。
私が知りたいこと:
- 合理的な代替手段は、レターの詳細をデータベースに保存し、要求されたときに「その場で」PDFを再作成することでしょうか?
- そのアプローチは、ファイルシステムから PDF を取得するよりも優れていますか、それとも劣っていますか?
顧客に送られた手紙の PDF をダウンロードできるようにする必要があります。
ドキュメントまたは画像のデータベース ストレージとファイル システム ストレージに関するスレッドを読んだことがあります。
私が知りたいこと:
アーカイブ目的の場合は、PDF を確実に保存します。将来、PDF 生成スクリプトが変更される可能性があり、レターが最初に送信されたものとまったく同じでなくなる可能性があるためです。顧客は、それがまったく同じであることを期待します。
どのアプローチが優れているかは関係ありません。より安全なアプローチを選択する方がよい場合もあります。
私は2つの理由でそれを保管します
1) PDF の生成方法を変更した場合、おそらく履歴項目を変更したくないでしょう。毎回それらを生成すると、それらが変更されるか、「古いスタイル」のレコードを生成するために互換性コードを保持する必要があります
2) ディスク容量が安い。ユーザーの忍耐はそうではありません。どうしても保存が必要な場合や、ストレージから取り出すのが PDF を生成するよりも難しい場合を除き、ユーザーに親切にして保存してください。
まばらなデータセットから 1 時間に何千ものこれらを作成すると、明らかにストレージが不足する可能性があります。しかし、スペースがある場合は、「使用する」に投票します
顧客に送られた手紙の記録を保持しなければならない法医学的な理由はありますか? オンザフライで再生成する場合、将来のコード変更によってレターが書き換えられないことをどのように知ることができますか (または、少なくとも、情報が訴訟で使用された場合、顧客は法廷でその主張を行うことができます)...
PDFドキュメントが永続的な性質のものである限り(作業ドキュメントだけでなく、公式に署名されて社内または社外のどこかに送信されたもの)、このPDFファイルのコピーとリンクがネットワーク上にあるはずです。データベース内のこのファイルに。
主に次の理由により、利用可能なデータを信頼してまったく同じドキュメントを別の時間に複製することはできません。
ASP.NET を使用している場合は、PDF をキャッシュしないでください。必要に応じて、キャッシュをデータベースに保存することも、最初に必要になるまでメモリに残しておくこともできます。エンタープライズ ライブラリはこれをキャッシュ アプリケーション ブロックに実装しており、使い方は非常に簡単です。オブジェクトをキャッシュする場合は、ブロックを使用してデータベースにストレージを作成し、必要なときにそれをロードします。再作成について心配する必要はありません。
考慮すべきことはほとんどありませんが、ある時点で存在していたデータに基づいて PDF が生成されることです。EG 前月のデータに基づく請求書ですか?
もしそうなら、このレターを作成するために毎月同じテンプレートを使用しますか? レター形式が変更された場合に何が起こるか、オンザフライで再生成すると、送信されたものと同じではなくなります。PDFストリームをデータベースに保存することは可能ですか?
私が何を得ていると思いますか、ユーザーに送信されたものの正確な表現が必要ですか、それとも柔軟ですか?
PDF を動的に生成するか、静的に保存するかという問題は、プログラミングの問題というよりも法律の問題のように聞こえます。
これに関するガイダンスを提供できる弁護士にアクセスできない場合は、注意を怠って静的に保存する方がはるかに安全です。
「場合による」と言いたいところです。
1 つのドキュメントが何度も要求される場合、最初の要求で作成し、後で取得すると節約になる場合があります。
OTOH ドキュメントに対するほとんどのリクエストが 1 回限りのタイプであり、作成プロセスがサーバー容量のほとんどを消費しない場合、オンザフライには明らかな利点があります。