2009-08-10 9 views
4

テーブルの各列には、さまざまな車両の販売に関する情報が含まれています。そして、各ユーザは、各車両の複数の画像を記憶することができる。 これらの画像を保存するにはどうすればよいでしょうか?MySQL - イメージをデータベースに保存していますか?

重複:User Images: Database or filesystem storage?
重複:Storing images in database: Yea or nay?
重複:Should I store my images in the database or folders?
重複:Would you store binary data in database or folders?
重複:Store pictures as files or or the database for a web app?
重複:Storing a small number of images: blob or fs?
重複:store image in filesystem or database?

+0

この質問は何度も尋ねられています。 – zombat

+0

アドバイスありがとうございました... –

答えて

1

は宿題のようですね。 vehiclesテーブルからpicturesテーブルへの1対多の関係が必要です。 picturesテーブルには、イメージを含むBLOB列が含まれます。または、ディスクに格納されているイメージのファイル名を含むVARCHAR列を含むこともできます。

+2

IMHOデータベースは画像を保存する場所が間違っています。画像の場所を保存するだけです。 – Rufinus

+0

ほとんどの場合私は同意します。私はこれが宿題であり、OPはこれを行う一般的な2つの方法を認識する必要があると思います。 – Nate

+0

あなたは単一のフォルダを使用できます。データベースはどのファイルがどのユーザーによって所有されているかを知る必要があります。そのため、ユーザーが上書きできるファイルとできないファイルを決定します。 PK ID +ファイルタイプ拡張子、またはMD5ハッシュまたはその他の多くの方法で画像を保存できますが、それらを元のファイル名で保存しないでください。 – Rufinus

0

データベースに直接イメージデータを格納するオーバーヘッドは、特にトラフィックが多い大規模なサイトでは問題になります。

通常、私はサーバー上にイメージを保存するための命名規則を持っています。ファイル名はユーザーがアップロードしたものから書き直されますが、必要に応じて元のファイル名を保持できますそれらを衛生的にする。データベースは画像のメタデータのみを格納するので、画像ファイルの要求はWebサーバーが直接処理できます。

1

私はいくつかのフォルダに画像を保存することをお勧めします。そのため、検索時に簡単になります。データベースに格納する場合は、BLOBデータ型を使用できます。

関連する問題