2011-01-16 23 views
1

私はASP.NET MVCドキュメント管理システムの構築を担当しています。エントリの追加、編集、検索、バージョン管理などの基本的な文書管理タスクを実行できる必要があります。文書管理システム - ファイルの保存先

とにかく、私は、PDF、Office、および多くのイメージフォーマットを、データベースの各ドキュメントエントリに添付されたファイルとしてターゲティングしています。私の質問は次のとおりです。ストレージメカニズムを構築する際にプロが従う設計ガイドラインは何ですか?彼らはファイルシステムに文書ファイルを保存しますか?データベース?ファイルアップロードの処理方法

ユーザーがデータを編集している間に一時的な場所にファイルをアップロードし、ユーザーがエントリの作成を確認したときに永続的なストレージに移動するのに使用しました。これはいいですか?改善に関する提案はありますか?

+1

SQL Server 2008のFileStream機能を使用してください。 – slugster

+0

ご質問の一部 - データベースにファイルを保存する問題は、このサイトで何度も尋ねられています。私はDBが能力を持っていても、そうするための正当な理由はまだ見ていません。 Jereさんは食べ物に関する情報がある以前の投稿の1つです。 http://stackoverflow.com/questions/8952/storing-a-file-in-a-database-as-opposed-to-the-file-system – David

+0

なぜ巨大なユーザーが利用できる空き容量がある場合にビルドするのですかコミュニティとより良いサポート? DotNetNukeはプロフェッショナルバージョンでそれを処理します(無料ではありませんが)。ConfluenceはJavaベースのものですが、無料ではありません。ドキュメント管理だけではありません。私は自分自身を構築するためにすべてですが、これは優れたツールがすでに存在するものの1つであり、非自由なものについては、それを適切に構築するために投資するよりはるかに少ないです。 – David

答えて

0

ファイルは通常、データベースではなくファイルシステムに格納する必要があります。

あなたは、しかし、いくつかの他のことを考慮する必要があります。

  • あなたは今までお使いのシステムのためなどの負荷分散、複製を支持することを計画していますか?

    もしそうなら、ある種のネットワークロケーションからのファイルの保存/ロードをサポートする必要があります。
    これは想像以上に難しい場合があります。

  • ファイルへのアクセスを保護する予定ですか?

    もしそうなら、あなたはURLを知っている人が読めるようにする必要があります。 例:ファイルを要求の添付ファイルとして返す。

    これはまた、サーバー上で実行されるユーザー提供のファイル(たとえば、.aspxファイルまたは.exeファイルをアップロードしてからアクセスするユーザー)を防ぎます。

+0

私が知る限り、ファイルシステムにそれらを格納するには、ディスクの断片化が大きく、パフォーマンスが低いことが必要です。本当? –

+0

大量のデータチャーン(書き込み削除書き込み)がある場合にのみ、重要なディスクの断片化が発生します。ドキュメントデータベースは、アップロードされたコンテンツを持つ傾向があり、迅速に削除(誤ってアップロード)されるか、またはデータをアーカイブする必要があるまで保持されます。ファイルは断片化を魔法のように集めません。ディスク容量が十分にあるようにサーバーをプロビジョニングし、定期的に保守が行われるようにする場合は、問題ありません。 –

+0

このようなシステムで作業した後は消滅します:あなたは解雇されます;)それらをデータベースに格納し、SQL Server 2008 Filestream機能を使用してデータベースによって管理されるディスクスペースを取得し、すべての残りのSUCKSは管理観点から見たものです。 – TomTom

関連する問題