2012-03-13 2 views
1

데이터베이스에있는 제품에 대한 테이블을 가정합니다. 이제 제품에는 이미지 이름 "image.jpg"를 배치 할 "이미지"필드가 있습니다. 이제는 동일한 제품의 이미지를 두 개 이상 표시하려고합니다. image1.jpg, image2.jpg, image3.jpg.이 레코드를 단일 필드의 해당 제품 테이블에 어떻게 추가 할 수 있으며 PHP로 구현하여 이러한 이미지를 표시하는 방법은 무엇입니까? 중형, 대형, 초대형 등과 같은 제품의 크기면에서 동일한 시나리오입니다.데이터베이스에있는 엔티티에 둘 이상의 이미지 추가

+4

여러 필드의 데이터를 하나의 필드에 넣지 마십시오. 이는 관계형 데이터베이스를 갖는 목적을 무효화합니다. 해당 필드를 자체 테이블로 분할하여 원하는만큼 하위 테이블에 많은 이미지 레코드를 가질 수 있습니다. –

+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

네, 고마워요. :)하지만 블롭을 저장하는 대신에 파일 이름을 저장하는 장단점을 읽지 않았습니다. 그게 뭐죠? – TPSstar

관련 문제