Answers:
EAV目录和平面目录之间的区别如下:
1. Eav目录
EAV是实体属性值数据库模型,其中数据完全采用规范化形式。每个列数据值都存储在它们各自的数据类型表中。例如,对于产品,
产品ID存储在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实现了索引器,该索引器将定期查询标准集合并以以下格式填充平面数据库表。*是商店ID。
catalog_category_flat_store_*
catalog_product_flat_*
这些表具有非标准化的产品和类别数据,这些数据仅供只读。这使Magento可以在单个查询中获取类别和产品数据。
您可以通过导航到来启用平面目录System > Configuration > Catalog > Frontend > Use Flat Catalog Category | Use Flat Catalog Product
。设置为yes。
如果要在EAV表中为目录添加新属性。然后,不要忘记运行重新索引(System > Configuration > Index Management)
。重新索引刷新您的平面目录表。
有关更多信息,请在Magento中检查“ EAV”和“平面目录”
Magento使用实体属性值(EAV)模型在其数据库中存储客户,产品和类别数据。尽管EAV模型使您可以为这些对象具有完全可扩展的属性,但是对象属性存储在多个表中,而不是一个非常大的表中。
由于属性存储在许多表中,并且包括一些相同属性的副本,因此SQL查询可能很长且很复杂。平面目录功能可动态创建新表,其中每一行包含有关产品或类别的所有必要数据。
在早期版本的Magento中,每次更改产品属性或产品类别关联时,都必须重建平面目录。在此版本中,固定目录会为您更新-每分钟或根据您的Magento cron工作进行更新。
统一目录选项不仅可以启用统一目录和统一产品索引器,而且还可以为目录和购物车价格规则建立索引。如果您有大量的SKU(500,000个或更多),那么如果启用了平面目录产品选项,Magento可以快速索引目录和购物车价格规则。