Magento 2中EAV模型的理解

今天我将要讲述Magento 2中的EAV模型,Magento 2的数据库使用的技术是一个 以实体-属性-值得模型的一种数据模型简称:EAV模型

实体-属性-值(Entity-Attribute-Value)模型是一种数据模型,用于描述期望属性数量非常多的实体,但实际上,实体中使用的属性数量很少。

实体=Entity :存储有关所存储数据类型的信息。在Magento的例子中customer product, category等等

属性=Attribute :是每个实体的单独属性(名称、权重、颜色、尺寸、电子邮件地址)。

值=Value :是给定实体和属性的值。

EAV模式的优点如下:

  • 灵活多变的数据结构(可以在不更改数据库模式的情况下更改属性的数量)。
  • 当为给定实体添加新属性时,我们有可能在其他实体中使用它。
  • 快速实现。

EAV实体的数据库模式:

  • eav_entity – (E)实体表。
  • eav_entity_attribute (A) Attrubute表
  • eav_entity_{type} (V) -值表。{type} – datetime,decimals,int, text和varchar。

图表与eav_*表:

Magento 2中有哪些EAV实体(E):

实体列表可以在eav_entity_type表中找到:

  • customer_entity
  • customer_address_entity
  • catalog_category_entity
  • catalog_product_entity

以上这些都是实体对象,实体是指数据项 ,分别是类别,产品,客户和客户地址的实体表。

在Magento 2中有哪些EAV实体类型:

  • eav_entity_int
  • eav_entity_varchar
  • eav_entity_text
  • eav_entity_decimal
  • eav_entity_datetime

实体catalog_product在Magento 2中

为了理解Magento 2中的EAV模型,让我们考虑“catalog_product”示例、用于创建属性的表的类型、属性集中属性的函数和属性组中的属性。此外,我们还将更仔细地查看用于分配带有属性的产品的表。

Magento 2中EAV属性(A):

属性是指实体的不同属性。在Magento中,与实体相关的属性存储在单个表中:eav_attribute但由字段:entity_type_id区分。我们可以使用以下SQL查询轻松找到与实体相关的所有属性(例如产品):

输出的结果如下图

您只需使用entity_type_code的以下值即可找到其他实体的属性:

  • catalog_category
  • customer
  • customer_address

Magento 2中EAV值(V):

值是指实体属性的实际值。在Magento中,实体的属性值(例如:product)存储在catalog_product_entity_ {backend_type}表中。

其中{backend_type}引用table:eav_attribute的field:backend_type(值’static’除外)的值。

以下SQL用于查找与产品实体相关的所有backend类型:

输出如下

  • catalog_product_entity_text
  • catalog_product_entity_int
  • catalog_product_entity_varchar
  • catalog_product_entity_decimal
  • catalog_product_entity_datetime

用于存储相关backend_type的属性的值。

这就是与Magento有关的EAV的定义。希望现在您能够根据backend_type区分哪些属性值(在哪个表中)。接下我将给大家举例子说明。希望对你了解magento有所帮助。

例如:在Magento 2中为产品添加EAV属性

Magento有两种类型的属性可用于提供额外的功能,即Eav属性扩展属性。在这里,我将讨论eav属性,并展示如何在Magento 2中为产品添加eav属性

入口属性值(eav)属性是商家从管理面板中添加的描述产品的属性。使用自定义或eav属性描述形状、大小等属性。

步骤1:声明EAV安装工厂

步骤2:添加属性

  1. is_featured:属性code
  2. group:组名称属性,将显示在后台
  3. type:数据类型保存在数据库
  4. global:属性的范围(store, website or global)
  5. visible_on_frontend:允许在前端显示属性的true或false,或no
  6. apply_to:产品类型您想要添加的属性

步骤3:删除产品的EAV属性

按照上面的步骤,轻松地将EAV属性添加到Magento 2中的产品中!我试图提出一个简单的方法来完成这项任务,希望它能有所帮助。如在执行上述步骤时遇到任何问题,请在下方提出意见。

如果有不懂的地方请留言,SKY8G网站编辑者专注于研究IT源代码研究与开发。希望你下次光临,你的认可和留言是对我们最大的支持,谢谢!

上一篇: Magento 2判断文件是否存在

下一篇: Magento 2.3安装环境需求-教程(1)

登录 评论
avatar