2012-03-13 9 views
1

データベース内の製品のテーブルを想定します。今の製品には "image"フィールドがあり、ここで画像名 "image.jpg"を配置します。今私は同じ製品の複数のイメージを表示したい。 image1.jpg、image2.jpg、image3.jpg。これらのレコードを単一のフィールドの製品テーブルに追加する方法と、それらのイメージを表示するためにPHPで実装する方法を説明します。中規模、大規模、超大型などの製品サイズの点で同じシナリオです。データベース内のエンティティに複数のイメージを追加する

+4

複数のデータを1つのフィールドに入れないでください。これは、リレーショナルデータベースを持つという目的を否定します。そのフィールドを独自のテーブルに分割することで、そのサブテーブル内に必要な数のイメージレコードを持つことができます。 –

+0

なぜそれをしますか?複数の画像を扱うために1-Nの関係を持つ別のテーブルを作成できませんか? – loscuropresagio

+1

OKありがとう、私はイメージの余分なテーブルを追加し、私は同じサイズを同じようにしなければならないのですか? – TPSstar

答えて

0

BLOBを保存するのではなく、ファイル名を保存することの長所と短所をすでに考慮していたとします。

これは1対多の関係のようです。少なくとも、製品テーブルのファイル名と外部キー(FK)を保持するテーブルが必要です。次に、同じ製品FKを指し示す複数のイメージを持つことができます。私はSQLインジェクションの問題を無視してい

SELECT img.fileName 
FROM image_table AS img 
JOIN product_table prod ON prod.id = img.prod_id 
WHERE prod.id = ID_THAT_YOU_WANT 

、しかし、あなたはいけない:その後、単一の製品のための画像を得るために、あなただけのようなクエリを行うだろう。 IDをクエリに追加するだけではありません。

+0

yep、thanks buddy :)しかし、ブロブを保存するのではなく、ファイル名を保存するという長所と短所を読んだことはありませんでした。 – TPSstar

関連する問題