次のタスクの設計上の決定を見つける必要があります。
SQL Serverデータベースがあり、注文の表が含まれています。PDFドキュメントは、Webページからの簡単なファイルアップロードを通じてユーザーによってアップロードされ、注文に割り当てられます。注文ごとに複数のドキュメントはありません(おそらくドキュメントはなく、複数はありません)。この目的のために、ユーザーはWebページを開き、注文番号を入力し、注文を表示して、アップロードボタンをクリックします。したがって、アップロードされたドキュメントがどの順序に属しているかがわかります。
現在、ドキュメントをWebサーバーに保存するための2つのオプションを検討しています。
1)注文テーブルをvarbinary(MAX)列で拡張し、PDFドキュメントをそのバイナリフィールドに直接保存します。
2)PDFファイルをディスク上の特定のフォルダーに保存し、注文に関連する一意の名前を付けます(たとえば、データベースの主キーである注文番号、またはの追加の列に保存できるGUID注文表)。おそらく、ファイルをサブフォルダーに1か月に1つずつ保存し、サブフォルダー名をデータベースの順序行に保存して、1つのフォルダーに数千のファイルが入りすぎないようにする必要があります。
PDFファイルが保存されたら、関連する注文番号を入力した後、ダウンロードしてブラウザから表示できます。
1つのデータベースにすべての関連データがあると、データ管理が簡単に思えるので、オプション(1)を使用する傾向があります。ただし、データベースのサイズがソリューション(2)よりもはるかに速く大きくなるため、時間の経過とともにパフォーマンスの問題が発生する可能性があることを少し恐れています。データベース全体のサイズの約90%、さらには95%は、保存されているPDFファイルのみで構成されます。
ここにいくつかの追加情報があります:
- PDFファイルのサイズはそれぞれ約100キロバイトになります
- 1か月あたり約1500件の注文/PDFファイル
- Windows Server 2008 R2 / IIS 7.5
- SQL Server 2008 SP1 Express
- ハードウェアについてはよくわかりませんが、QuadCoreProcが1つあると思います。および4GBRAM
- アプリケーションはASP.NETWebforms3.5SP1で記述されています
(上記の数値で約2年後にSQL Server Expressエディションの4GBの制限に達することを認識しています。ただし、ここではこれを無視できます。データベースから古いデータを削除するか、フルライセンスにアップグレードする必要があります。可能なオプション。)
私の質問は:オプションの長所と短所は何ですか、そしてあなたは何をお勧めしますか?おそらく誰かが同様の仕事をしていて、彼の経験について報告することができます。
よろしくお願いします!
関連している: