Statische Attribute sind Attribute , die in der Haupttabelle eines Unternehmens gespeichert - für Katalog - Produkte catalog_product_entity. Beispielsweise ist das Attribut skuvon Katalogprodukten definiert als static. Statische Attribute werden immer von Magento geladen und sind besonders nützlich, wenn Sie Informationen schnell abrufen oder die Suche nach Daten optimieren möchten. Ein Nachteil dieser Art von Attributen ist, dass Sie keine speicherspezifischen Werte haben können, was einer der Vorteile des Magento EAV-Systems ist.
Selbst wenn Sie ein Attribut als definieren static, wird es von Magento nicht als solches behandelt, es sei denn, Sie haben eine entsprechende Spalte in der Hauptentitätstabelle. Wenn die Spalte nicht vorhanden ist, behandelt Magento das Attribut als varcharstandardmäßig und sucht es in der varchar EAV - Tabelle für die Modell - für Produkte, catalog_product_entity_varchar.
Wenn Sie statische Attribute in Ihrem Projekt verwenden möchten, müssen Sie zwei Dinge in Ihren Installations- / Upgrade-Skripten tun. Zunächst müssen Sie der Hauptentitätstabelle eine Spalte mit der richtigen Spaltendefinition hinzufügen. Als Nächstes müssen Sie Ihr Attribut mithilfe der addAttribute()Methode installieren und als Attribut definieren static. Bitte lesen Sie die Installationsskripte von, Mage_Catalogum besser zu verstehen, wie die Dinge in diesem Fall funktionieren.
Wenn Sie häufig Abfragen basierend auf Ihren benutzerdefinierten statischen Attributen ausführen möchten, sollten Sie einen Index für die neue Spalte hinzufügen, um das Abrufen von Daten zu beschleunigen.
@Marius Dies ist nur ein Beispiel für das Hinzufügen eines statischen Attributs.
Roman Snitko
Angenommen, Sie fügen die Spalte über MySQL direkt zur Datenbank hinzu. Wie können Sie den TYP eines vorhandenen Produktattributs in STATIC ändern? Frage: Könnten wir einfach type = static in einer bestimmten Tabelle aktualisieren und es würde funktionieren?
catalog_product_entity
, andernfalls wird catalog_product_entity_varchar eingecheckt.Hier ist das Beispiel aus dem Kern:
quelle