Разница между каталогом EAV и каталогом Flat заключается в следующем:
1. Eav Каталог
EAV - это модель базы данных значений атрибутов сущности, в которой данные полностью представлены в нормализованной форме. Значение каждого столбца хранится в соответствующей таблице типов данных. Пример для продукта
Идентификатор продукта хранится в catalog_product_entity_int
таблице,
название продукта в catalog_product_entity_varchar
таблице,
цена продукта в catalog_product_entity_decimal
таблице,
дата создания продукта в catalog_product_entity_datetime
таблице,
Описание товара в catalog_product_entity_text
табл.
EAV сложен, так как объединяет 5-6 таблиц, даже если вы хотите получить информацию только об одном продукте.
Столбцы называются атрибутами в EAV.
2. Плоский каталог
Плоская модель использует только одну таблицу, поэтому она не нормализована и занимает больше места в базе данных. Это очищает EAV накладные расходы,
Это хорошо, когда дело доходит до производительности, так как для загрузки всего продукта требуется всего один запрос, а не для объединения 5-6 таблиц для получения сведений только об одном продукте.
Столбцы называются полями в плоской модели.
В Magento реализованы индексаторы, которые будут периодически запрашивать стандартные коллекции и заполнять простые таблицы базы данных в следующем формате. Где * это идентификатор магазина.
catalog_category_flat_store_*
catalog_product_flat_*
Эти таблицы содержат ненормализованные данные о товарах и категориях, предназначенные только для чтения. Это позволяет Magento получать данные о категориях и продуктах в одном запросе.
Вы можете включить плоский каталог, перейдя к System > Configuration > Catalog > Frontend > Use Flat Catalog Category | Use Flat Catalog Product
. Установите это на да.
Если вы добавляете новый атрибут в таблицу EAV для каталога. Тогда не забудьте запустить переиндексацию (System > Configuration > Index Management)
. Переиндексация обновляет таблицы каталога.
Для получения дополнительной информации, пожалуйста, проверьте «EAV» и «Плоский каталог» в Magento