3

商品を販売するウェブページで商品の写真を処理する一般的な方法は何ですか?たとえば、本やコンピュータコンポーネントなどを含むデータベースがあり、そのすべてに独自のサンプル画像があるとします。たとえば、それらをバイナリデータとしてDBに保存するか、コードビハインドで処理して、次のディレクトリに保存する必要があります。 DBの製品テーブルに保存されている画像ファイルへの適切なリンク?

私は販売会社の例を作ろうとしています。これを行う方法を考え出すことはできますが、プログラミングビジネスで使用される典型的な基準は何でしょうか。

更新:別のシステムまたは代替DBに保存することはオプションではありませんが、将来の参照用に可能な代替に関する情報をいただければ幸いです。私が利用できるのは、1台のコンピューターで1つのASP.Netプロジェクトを使用するVisualStudio2008とSQLServer2005/2008だけです。したがって、ファイルはWebページプロジェクト内のディレクトリ、またはWebページプロジェクトで使用されている1つのDBに保存する必要があります。

4

4 に答える 4

7

ファイルシステムにファイルを
保存するがDB内にファイルを保存すると、すべてのアプリケーションデータの単一のバックアップポイントになり、ファイルを保存するための書き込み権限フォルダーが必要ないため、アプリのセキュリティ面が小さくなります。

SQLServer2008FILESTREAMストレージが救いの手を差し伸べます

FILESTREAMSQL Server 2008で、Microsoftは、データを通常のファイルとしてフォルダーに格納するという新しいデータストレージメカニズムを導入しました。ただし、テーブルを介してそれらにアクセス(およびそれらのメタデータを保存)することができます。ファイルをvarbinary(max)として保存すると、構成されたとおりにファイルシステムに保存されます。これらのファイルは、DBバックアップ手順によっても取得されます。このようにして、単一のソリューションで両方の長所を活用できます。

ここでそれについて読んでください

フェスティバル後のメモ
質問の作成者は、利点がある場合はSQLServer2008も使用できると述べていることを指摘する必要があります。これがバージョン2008に関連する唯一の理由です。これは、実際に彼らの問題に対する最適な解決策だからです。

于 2009-09-28T07:26:10.750 に答える
2

参照してください:ファイル システムではなくデータベースにファイルを保存しますか?

ここでデータベースに保存することにした場合、SQL Server 2005 用の作業 C# コードがあります: SQL Server データベースへのファイル/イメージの保存と復元

故 Jim Gray によるこの MS Research の論文: To BLOB or Not To BLOB: Large Object Storage in a Database or a Filesystemには、次のアドバイスがあります。

常識から予想されるように、256K 未満のオブジェクトはデータベースに格納するのが最適であり、1M を超えるオブジェクトはファイルシステムに格納するのが最適です。256K から 1M の間では、読み取りと書き込みの比率と、オブジェクトの上書きまたは置換の速度が重要な要素になります。

于 2009-09-28T06:57:37.797 に答える
1

バイナリ データで DBMS をロードしないでください。SQL Server に特定の作業を任せます。ファイルがファイル システムや他のコンピュータに保存されている場合に適しています。

于 2009-09-28T07:02:26.307 に答える
0

私の推奨する解決策は、常にファイル システムのディレクトリに保存し、URL/場所をデータベースに保存することです。これが最も保守しやすく、ファイルに影響を与えずにデータベースやデータストレージを簡単に変更できると思います。

この方法は、データベースに依存しません。

私は最近、レガシー システムがイメージとファイルをバイナリとして格納する状況に遭遇しました。これにより、データベース ソフトウェアをアップグレードするためにこれらを取得するのに時間と労力がかかりました。

于 2009-09-28T07:02:50.547 に答える