속성 backend_type = 정적?


23

누군가 속성 에 대한 backend_type 정적 의 중요성 / 관련성을 설명 할 수 있습니까 ?

속성이로드되지 않는 데 문제가 있으며 이것이 속성과 관련이 있는지 궁금합니다 backend_type.

또한 플랫 테이블에 넣는 것과 관련이 있습니까?

답변:


37

정적 속성은 카탈로그 제품의 엔티티 기본 테이블에 저장된 속성 catalog_product_entity입니다. 예를 들어 sku카탈로그 제품 의 속성 은로 정의됩니다 static. 정적 속성은 항상 Magento에 의해로드되며 특히 정보를 빠르게 검색하거나 데이터 조회를 최적화하려는 경우에 유용합니다. 이 유형의 속성의 단점은 Magento EAV 시스템의 장점 중 하나 인 상점 별 값을 가질 수 없다는 것입니다.

속성을로 정의하더라도 static기본 엔티티 테이블에 해당 열이 없으면 Magento는 해당 속성을 처리하지 않습니다. 열이 없으면 Magento는 varchar기본적으로 속성을 처리 하고 varchar EAV 테이블에서 모델 용 제품 의 속성을 찾습니다 catalog_product_entity_varchar.

프로젝트에서 정적 속성을 사용하려면 설치 / 업그레이드 스크립트에서 2 가지 작업을 수행해야합니다. 먼저, 올바른 열 정의를 사용하여 기본 엔티티 테이블에 열을 추가해야합니다. 다음으로 addAttribute()메소드를 사용하여 속성을 설치 하고 속성을로 정의해야합니다 static. Mage_Catalog이 경우 작동 방식을 더 잘 이해 하려면 설치 스크립트를 참조하십시오 .

사용자 지정 정적 속성을 기반으로 자주 쿼리를 실행하려는 경우 데이터 가져 오기 속도를 높이기 위해 새 열에 인덱스를 추가하는 것이 좋습니다.


1
category_ids는 정적입니다. catalog_product_entity_varchar 테이블에 없습니다.
ahnbizcad

summary : static은 값이의 열임을 의미하며 catalog_product_entity, 그렇지 않은 경우 catalog_product_entity_varchar의 확인으로 돌아갑니다.
ahnbizcad

1

다음은 핵심 샘플입니다.

$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
));

1
이것이 질문과 어떤 관련이 있습니까?
Marius

@Marius 이것은 정적 속성을 추가하는 방법의 샘플 일뿐입니다.
로마 Snitko

MySQL을 통해 열을 DB에 직접 추가한다고 가정하십시오. 기존 제품 속성의 TYPE을 STATIC으로 어떻게 변경할 수 있습니까? 질문 : 특정 테이블에서 type = static을 업데이트하면 작동합니까?
snh_nl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.