지금은 4 개 테이블이 : 다음 질의 :EAV의 쿼리 및 테이블
SELECT `products`.`id` AS `product_id`,
`attributes`.`attribute`,
`values`.`value`
FROM `products` LEFT JOIN `attributes` ON (`attributes`.`product_id` = `products`.`id`)
LEFT JOIN `values` ON (`values`.`product_id` = `products`.`id`
AND `values`.`attribute_id` = `attributes`.`id`)
WHERE `products`.`id` IN ($ids)
그리고 그것의 값과 속성을 얻을하지만 한 가지 궁금 해요 : table attributes
에 'product_id'
열을 없애고 해당 열이없는 속성과 값을 얻을 수 있다면? 난 그냥 원하는 동안
table attributes
-id 1
-attribute Weight
-product_id 1
-id 2
-attribute Weight
-product_id 2
: 지금은 예를 들어 복제 속성의 전체 무리의 내 영어에 대한
이-id 1
-attribute Weight
미안 내 게시물의 일부 더 많은 설명을 필요로하는 경우, 지금
을 나에게주세요
'product' 테이블의 설명에서'category_id'가 없습니다. –
EAV의 한계점을 떠나서, 당신의 디자인은 다른 제품들이 다른 속성 (테이블'속성'에 저장되어있는 속성)을 가질 수 있다고 제안합니다. 이러한 기능을 원하지 않는다면 @ vucetica의 접근 방식을 사용할 수 있습니다. –