Różnica między katalogiem EAV a płaskim katalogiem jest następująca:
1. Katalog Eav
EAV to model bazy danych wartości atrybutów encji, w którym dane są w pełni w znormalizowanej formie. Każda wartość danych kolumny jest przechowywana w odpowiedniej tabeli typów danych. Przykład dla produktu
identyfikator produktu jest przechowywany w catalog_product_entity_int
tabeli,
nazwa produktu w catalog_product_entity_varchar
tabeli,
cena produktu w catalog_product_entity_decimal
tabeli,
data utworzenia produktu w catalog_product_entity_datetime
tabeli,
opis produktu w catalog_product_entity_text
tabeli.
EAV jest złożony, ponieważ łączy 5-6 tabel, nawet jeśli chcesz uzyskać tylko dane jednego produktu.
Kolumny są nazywane atrybutami w EAV.
2. Płaski katalog
Model płaski wykorzystuje tylko jedną tabelę, więc nie jest znormalizowany i zajmuje więcej miejsca w bazie danych. Usuwa obciążenie EAV,
Jest to dobre, jeśli chodzi o wydajność, ponieważ wystarczy tylko jedno zapytanie, aby załadować cały produkt zamiast łączyć 5-6 tabel, aby uzyskać tylko szczegóły jednego produktu.
Kolumny nazywane są polami w modelu płaskim.
Magento zaimplementowało indeksatory, które okresowo sprawdzają standardowe kolekcje i zapełniają płaskie tabele bazy danych w następującym formacie. Gdzie * to identyfikator sklepu.
catalog_category_flat_store_*
catalog_product_flat_*
Te tabele zawierają nienormalizowane dane o produktach i kategoriach przeznaczone wyłącznie do odczytu. Pozwala to Magento na pobranie danych kategorii i produktów w jednym zapytaniu.
Możesz włączyć katalog płaski, przechodząc do System > Configuration > Catalog > Frontend > Use Flat Catalog Category | Use Flat Catalog Product
. Ustaw na tak.
Jeśli dodajesz nowy atrybut w tabeli EAV dla katalogu. Nie zapomnij więc o ponownym indeksowaniu (System > Configuration > Index Management)
. Ponowne indeksowanie odświeża tabele płaskich katalogów.
Aby uzyskać więcej informacji, sprawdź „EAV” i „Flat Catalog” w Magento