EAV 카탈로그와 플랫 카탈로그의 차이점은 다음과 같습니다.
1. 카탈로그 카탈로그
EAV는 엔티티 속성 값 데이터베이스 모델이며 데이터가 완전히 정규화 된 형식입니다. 각 열 데이터 값은 해당 데이터 형식 테이블에 저장됩니다. 예를 들어, 제품의 경우
제품 ID는 catalog_product_entity_int
테이블에 저장되며
catalog_product_entity_varchar
표의 제품 이름
catalog_product_entity_decimal
테이블에있는 제품 가격 ,
catalog_product_entity_datetime
테이블에 제품 생성 날짜
catalog_product_entity_text
표의 제품 설명 .
EAV는 하나의 제품 세부 정보 만 얻으려는 경우에도 5-6 개의 테이블을 결합하므로 복잡합니다.
EAV에서는 열을 속성이라고합니다.
2. 플랫 카탈로그
플랫 모델은 하나의 테이블 만 사용하므로 정규화되지 않고 더 많은 데이터베이스 공간을 사용합니다. EAV 오버 헤드를 지우고
하나의 제품 세부 정보를 얻기 위해 5-6 테이블을 조인하는 대신 전체 제품을로드하기 위해 하나의 쿼리 만 필요하므로 성능에 좋을 때 좋습니다.
플랫 모델에서는 열을 필드라고합니다.
Magento는 정기적으로 표준 컬렉션을 쿼리하고 플랫 데이터베이스 테이블을 다음 형식으로 채울 인덱서를 구현했습니다. 여기서 *는 상점 ID입니다.
catalog_category_flat_store_*
catalog_product_flat_*
이 테이블에는 정규화되지 않은 제품 및 범주 데이터가 있으며 읽기 전용입니다. 이를 통해 Magento는 단일 쿼리에서 범주 및 제품 데이터를 가져올 수 있습니다.
로 이동하여 플랫 카탈로그를 활성화 할 수 있습니다 System > Configuration > Catalog > Frontend > Use Flat Catalog Category | Use Flat Catalog Product
. 이것을 yes로 설정하십시오.
카탈로그의 EAV 테이블에 새 속성을 추가하는 경우 그런 다음 다시 색인 생성을 실행하는 것을 잊지 마십시오 (System > Configuration > Index Management)
. 재색 인화하면 플랫 카탈로그 테이블이 새로 고쳐집니다.
자세한 내용 은 Magento의 "EAV"및 "Flat Catalog" 를 확인하십시오.