Öznitelik backend_type = statik?


23

Birisi bir öznitelik için backend_type statik statik önemini / önemini açıklayabilir mi?

Yüklenemeyen bir öznitelikle ilgili bazı sorunlar yaşıyorum ve bunun backend_typebununla bir ilgisi olup olmadığını merak ediyorum.

Ayrıca, bu, düz masalara ne konulacağıyla da ilgili midir?

Yanıtlar:


37

Statik özellikler, bir işletmenin ana tablosunda depolanan özelliklerdir - katalog ürünleri için catalog_product_entity,. Örneğin, skukatalog ürünlerinin niteliği olarak tanımlanmaktadır static. Statik özellikler her zaman Magento tarafından yüklenir ve özellikle hızlı bir şekilde bilgi almak veya verilerin aranmasını optimize etmek istiyorsanız kullanışlıdır. Bu tür niteliklerin bir dezavantajı, Magento EAV sisteminin avantajlarından biri olan mağazaya özel değerlere sahip olmamanızdır.

Bir öznitelik tanımlasanız bile static, ana varlık tablosunda karşılık gelen bir sütuna sahip olmadığınız sürece, Magento böyle davranmaz. Sütun orada değilse, Magento özelliği varcharvarsayılan olarak kabul eder ve modelin varchar EAV tablosunda arar - ürünler için catalog_product_entity_varchar,.

Projenizde statik özellikler kullanmak istiyorsanız, kurulum / yükseltme komut dosyalarınızda 2 şey yapmanız gerekir. Öncelikle, ana varlık tablosuna doğru sütun tanımına sahip bir sütun eklemeniz gerekir. Daha sonra, addAttribute()yöntemi kullanarak niteliğinizi yüklemeniz ve niteliğinizi olarak tanımlamanız gerekir static. Mage_CatalogBu durumda işlerin nasıl yürüdüğünü daha iyi anlamak için lütfen kurulum komut dosyalarına bakın .

Özel statik özelliklerinizi temel alarak sorguları sık sık çalıştırmayı planlıyorsanız, veri alımını hızlandırmak için yeni sütuna bir dizin eklemeyi düşünün.


1
category_ids statiktir. catalog_product_entity_varchar tablosunda değil.
ahnbizcad

summary: static, değerin bir sütun olduğu anlamına gelir catalog_product_entityve eğer değilse, catalog_product_entity_varchar içindeki kontrolüne geri dönecektir.
ahnbizcad

1

İşte çekirdekten örnek:

$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
Bunun soru ile ne alakası var?
Marius

@Marius, statik bir özniteliğin nasıl eklendiğinin sadece bir örneğidir.
Roman Snitko 19:13

Sütunu doğrudan MySQL yoluyla DB'ye eklediğinizi varsayalım. Mevcut bir ürün özniteliğinin TÜRÜ'nü STATIC olarak nasıl değiştirirsiniz? Soru: Belli bir tabloda type = static komutunu güncelleyebilir miyiz?
snh_nl
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.