博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
magento 数据结构
阅读量:5768 次
发布时间:2019-06-18

本文共 1546 字,大约阅读时间需要 5 分钟。

hot3.png

magento的表结构很复杂具体可以看看这个

http://www.magereverse.com/
首先要知道是EAV模式,这种结构要比普通数据结构更容易扩展,但是带来的就是查询速度慢,好在magento的缓存机制不错
最重要的3张表eav_entity_type,eav_entity_attribute,eav_attribute

eav_entity_type表用来定义实体的基本信息

比如entity_type_id = 1是customer实体

eav_entity_attribute表用来定义实体模型包含哪些属性(当然这里还涉及到set和group)

select * from eav_entity_attribute where entity_type_id=1;取出customer有哪些属性

eav_attribute属性的信息

select * from eav_attribute where attribute_id<=上面结果范围 and attribute_id>上面结果范围;取出customer的属性定义

看看magento中是怎样使用EAV模式的,还是拿customer

customer_entity用户的实体存放,当然里面也有是没有必用分开的属性,比如email,这是用户必须的,magento没有完全分开,可能也是考虑到速度
customer_entity_varchar
customer_entity_text
customer_entity_int
customer_entity_decimal
customer_entity_datetime
这几张表是实体对应的属性的值,属性值都有不同的类型,这样分开是有必要的
SELECT `cev`.*,`ea`.attribute_code FROM customer_entity_varchar AS `cev` LEFT JOIN `eav_attribute` AS `ea` ON `ea`.attribute_id = `cev`.attribute_id WHERE `cev`.entity_id = '2' ;取出客户id为2的在customer_entity_varchar中的属性值

magento不仅提供了EAV模式,同时在数据库中完美支持了Flat表结构,flat和我们普通的表结构,一个产品对应一行数据,相对于EAV的多表联查来说,单表单行数据的调用效率更高,magento默认是eav模式,可以在后台开启flat(就分类和产品用到)

catalog_product_flat_1
catalog_product_flat_2
后面数字代表store Id,刷新索引的时候会重新更新这些表数据

order表结构

sales_flat_order相关,表命名中带了flat,表示order不使用eav模式,我这么理解的
看这两张表
sales_flat_order_grid//后台grid列出来的相关数据,它把相应的放一起了,应该是为了方便调取,可是这样写的时候就的多了操作,考虑到读应该比写更频繁,这样应该也是可取的
sales_flat_order_item//同上,具体到某个order里面

sales_flat_quote相关表,在网站上点了产品放入购物车,但是没有下单,magento将这些产品暂时放入这些表中,下次用户登录到购物车会拿出来让客户继续,这个没得说。

magento的数据结构很灵活,上面写的也只是大概了解些,具体到实现,还是有很多东西的。

转载于:https://my.oschina.net/liufeng815/blog/353571

你可能感兴趣的文章
搭建智能合约开发环境Remix IDE及使用
查看>>
iOS 12 is coming
查看>>
在xib上removeFromSuperview引用计数问题
查看>>
Java反射详细介绍
查看>>
Spring Cloud构建微服务架构—服务消费基础
查看>>
RAC实践采坑指北
查看>>
runtime运行时 isa指针 SEL方法选择器 IMP函数指针 Method方法 runtime消息机制 runtime的使用...
查看>>
PAT A1119 前序遍历后续遍历不唯一生成
查看>>
分布式事务中间件 Fescar—RM 模块源码解读
查看>>
LeetCode36.有效的数独 JavaScript
查看>>
Scrapy基本用法
查看>>
PAT A1030 动态规划
查看>>
10年java架构师教你如何快速打好Java基础?
查看>>
DOS Network一月项目月报
查看>>
自制一个 elasticsearch-spring-boot-starter
查看>>
软件开发学习的5大技巧,你知道吗?
查看>>
面试题 LazyMan 的Rxjs实现方式
查看>>
java入门第二季--封装--什么是java中的封装
查看>>
【人物志】美团前端通道主席洪磊:一位产品出身、爱焊电路板的工程师
查看>>
4. Python3源码—字符串(bytes)对象
查看>>