답변:
정적 속성은 카탈로그 제품의 엔티티 기본 테이블에 저장된 속성 catalog_product_entity
입니다. 예를 들어 sku
카탈로그 제품 의 속성 은로 정의됩니다 static
. 정적 속성은 항상 Magento에 의해로드되며 특히 정보를 빠르게 검색하거나 데이터 조회를 최적화하려는 경우에 유용합니다. 이 유형의 속성의 단점은 Magento EAV 시스템의 장점 중 하나 인 상점 별 값을 가질 수 없다는 것입니다.
속성을로 정의하더라도 static
기본 엔티티 테이블에 해당 열이 없으면 Magento는 해당 속성을 처리하지 않습니다. 열이 없으면 Magento는 varchar
기본적으로 속성을 처리 하고 varchar EAV 테이블에서 모델 용 제품 의 속성을 찾습니다 catalog_product_entity_varchar
.
프로젝트에서 정적 속성을 사용하려면 설치 / 업그레이드 스크립트에서 2 가지 작업을 수행해야합니다. 먼저, 올바른 열 정의를 사용하여 기본 엔티티 테이블에 열을 추가해야합니다. 다음으로 addAttribute()
메소드를 사용하여 속성을 설치 하고 속성을로 정의해야합니다 static
. Mage_Catalog
이 경우 작동 방식을 더 잘 이해 하려면 설치 스크립트를 참조하십시오 .
사용자 지정 정적 속성을 기반으로 자주 쿼리를 실행하려는 경우 데이터 가져 오기 속도를 높이기 위해 새 열에 인덱스를 추가하는 것이 좋습니다.
catalog_product_entity
, 그렇지 않은 경우 catalog_product_entity_varchar의 확인으로 돌아갑니다.
다음은 핵심 샘플입니다.
$installer->run("
ALTER TABLE `{$installer->getTable('catalog/product')}` ADD `has_options` SMALLINT(1) NOT NULL DEFAULT '0';
");
$installer->addAttribute('catalog_product', 'has_options', array(
'type' => 'static',
'visible'=>false,
'default' => false
));