magento1中的eav模式讲解(入表)

magento1
magento1中的eav模式讲解
EAV的含义
eav三个字母对应的三个单词为
Entity:实体
Attribute:属性
Value:值
EAV的理解:Entity-Attribute-Value/(实体-属性-值)
• 实体:包括要存储的数据类型的信息(客户,产品…)
• 属性:是实体的属性(颜色,大小,高度…)
• 值:是给定属性的值(蓝色,红色,…)
也就是说,在我们传统的一张表,以eav的方式实现时,会被横向拆分为多张数据表。
这样做的好处是:可以方便的扩展字段,自定义字段。
用户相关表
customer_entity
customer_entity_datetime
customer_entity_decimal
customer_entity_int
customer_entity_text
customer_entity_varchar
customer_form_attribute
customer_group
当你找用户相关的表时,你会发现只有以上几个表,当前你点开的时候你会发现customer_entity用来存用户,而 customer_entity_*存的确实用户的值,这时候你会很纳闷,说好的eav呢,为什么只有e和v,a去哪了,别急小编告诉你他在:eav_attribute里面,点开eav_attribute表,你会发现里面存的全是属性。
在这里插入图片描述
到这里你用户的eav表算是找齐了。
疑问
表这么多magento是怎么往这么多表里写数据呢?
小编已经帮你整理好了。
首页在这里我要讲一下customer_form_attribute这个表,点开这个表你会发现里面全是这样的数据:
在这里插入图片描述
通过我们对magento用户注册接口的分析发现了一个重要的值,customer_account_create,这个时候有没有明白了是怎么一回事呢?
其实,在创建用户的时候magento会先去customer_form_attribute表查询一下这个表中customer_account_create的数据有那些
在这里插入图片描述
查出来的就是注册时需要的用户属性。
在这里插入图片描述
前端的请求数据
在这里插入图片描述
到这里是不是就明白了。
大致流程就是:
查询customer_form_attribute中customer_account_create用户的属性id,
然后根据查询出来的属性做个for循环,在循环的过程中根据attribute_code值那到前端出过来对应的值。
然后根据属性中的backend_model和backend_type分别把数据放到对应数据表中。
以上就是eav写表的流程。
重点:
在以上例子中有没有发现一个重点,就是在添加属性的时候记得往customer_form_attribute标中添加属性的id和值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值