Asp.netとSqlサーバーを使用してEコマースWebサイトを開発しています。顧客は、さまざまなスイッチと照明器具を表示して注文できます。
これらの製品の画像をカテゴリごとに表示する必要があるため、表示する必要がある画像の数は500を超える可能性があります。これらの画像をSQLの画像タイプとして保存するか、画像のパス。後者の場合、すべての画像を単一のフォルダーに保存する方が適切ですか?
最善の行動方針についてアドバイスしてください。
image
データ型は画像とは関係ありません。なぜ存在するのか分かりません。それはレガシーです。
他のblobを保存するのと同じように画像を保存します:varbinary(max)
。
ブロブをデータベースに保存するかどうかの問題は以前に説明しました。 ここでの回答は非常に意見が多く、主観的です。データベースの外部にブロブを保存するalwaysと言うのは明らかに間違っています。
SQLサーバー上のBLOBには以下のデータ型を使用できます:
Binary
:8,000バイトまでの固定サイズ。
VarBinary(n)
:最大8,000バイトの可変サイズ(nは最大サイズを指定します)。
VarBinary(max)
:可変サイズ、2 GBの制限。
製品IDに対して、データベースに画像のURLを保存することをお勧めします。ただし、一度に最大500個のURLをリクエストする場合は、画像のURLをキャッシュするために中央にCDNを導入することをお勧めします。パフォーマンスに大きな影響を与えます
イメージをフォルダーに保存し、そのファイルのパスをSQLサーバーに保存することをお勧めします。ただし、同じ名前のファイルが作成され、置き換えられる場合があります。タイムスタンプ付きで保存されます。そうでなければ、SQLサーバーのImage Datatypeに保存する別の方法を実行するのに役立つと思います。
データをSQLサーバーに保存するにはImage Datatype以下のリンクのGuildlineに従ってください
これについて考えてみましょう。 Blobフィールドに保存する場合は、そのデータ用に別のファイルグループを作成してください。パスとして保存することにした場合。ファイルストリームを使用します。データベースがパスを管理します。トランザクションで処理されます。データベースと一緒にバックアップされます。