Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Potrzebujesz pomocy w zrozumieniu obiektów kolekcji produktów Magento oraz katalogu/modelu produktu

Masz kilka sposobów na dostęp do danych z Magento :

  • używając load() => ładuje WSZYSTKIE dane (atrybuty) względem modelu. Jest bardzo powolny i zabójczy w wydajności. W przypadku produktu powinieneś używać funkcji load() tylko na stronie produktu (ponieważ wszystkie dane, których użyjesz na tej stronie, odnoszą się do pojedynczego obiektu ... więc możesz załadować je w całości)

  • używając kolekcji => kiedy musisz pobrać listę obiektów, musisz użyć (przynajmniej) kolekcji. Od Ciebie zależy, jaką listę atrybutów chcesz pobrać. Możesz dodać atrybut do wyboru/filtrowania, a kolekcja będzie w stanie wykonać połączenia SQL z tabelami EAV itp. w tle

  • używanie niestandardowego SQL => zbieranie może być powolne w przypadku złożonych obiektów (kolekcja inicjuje wiele sprzężeń SQL do tabeli, których możesz nie potrzebować)... ostatnią metodą dostępu do danych z BDD jest utworzenie własnego SQL w Twoim ResourceModel

W skrypcie, który pokazujesz, występuje ogromny błąd:ładujesz pełny model wewnątrz foreach iterującego na kolekcji. Nigdy nie wolno tego robić, jeśli musisz wczytać () produkt, zakładam, że to dlatego, że nie znalazłeś atrybutu w kolekcji ? W takim przypadku wystarczy zmodyfikować kolekcję, aby pobrać atrybut...

Na przykład w przypadku produktu magento oferuje sposób automatycznego dodawania (lub usuwania) atrybutów do dowolnego produktu->kolekcji, którą tworzysz. (patrz znacznik XML frontend/product/collection/attributes w pliku config.xml Mage_Catalog)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy istnieje sposób na wykonanie zrzutu SQL z Amazon Redshift?

  2. Jak wybrać paginację pod kątem liczby N rekordów z bazy danych MySQL?

  3. Dodaj klucz obcy MySQL

  4. Jak pobrać nazwy tabel w bazie danych mysql za pomocą Pythona i MySQLdb?

  5. uproszczone:mysqli num_rows nie działa