laravel 强大的关联模型
2017-01-22 11:09
351 查看
内容比较多,不总结了,直接看学院君的译文吧,已经写得很详细了
传送门:http://laravelacademy.org/post/6191.html
PS1:
laravel的关联模型并不是遍历一次表查询其的关联数据,例如查询20条记录(分页),并不是先查询出20条记录,再循环20条记录查询其的关联记录,如果是这样的啊,就会浪费大量的数据库连接(查询了1+20次)
那么它是怎么做的呢?
它是先查询这20条数据,然后统计记录的关联外键id,再用in查询关联表(例如 uid in (1,2,3)),再通过算法分配回原来20记录上,这样的话,只需要查询两次就可以了
没看laravel是怎么写的,只是我的猜测,下面是我之前优化后台订单查询时做的操作(那时候我还没学laravel,自己想的哈哈)
传送门:http://www.cnblogs.com/tujia/p/6043113.html
PS2:
当然,上面说的只是laravel关系模型中的一小部分功能(一对一)(讨论是直接联表好,先查一张表,再循环处理其他关联表比较好),laravel的关系模型非常多(一对多,多对多,远层一对多,多态关联,多对多多态关联等等),还能对关系模型添加约束查询,真的非常强大,有需要的多看一下文档吧,文档已经写得很详细了!传送门:http://laravelacademy.org/post/6191.html
传送门:http://laravelacademy.org/post/6191.html
PS1:
laravel的关联模型并不是遍历一次表查询其的关联数据,例如查询20条记录(分页),并不是先查询出20条记录,再循环20条记录查询其的关联记录,如果是这样的啊,就会浪费大量的数据库连接(查询了1+20次)
那么它是怎么做的呢?
它是先查询这20条数据,然后统计记录的关联外键id,再用in查询关联表(例如 uid in (1,2,3)),再通过算法分配回原来20记录上,这样的话,只需要查询两次就可以了
没看laravel是怎么写的,只是我的猜测,下面是我之前优化后台订单查询时做的操作(那时候我还没学laravel,自己想的哈哈)
传送门:http://www.cnblogs.com/tujia/p/6043113.html
PS2:
当然,上面说的只是laravel关系模型中的一小部分功能(一对一)(讨论是直接联表好,先查一张表,再循环处理其他关联表比较好),laravel的关系模型非常多(一对多,多对多,远层一对多,多态关联,多对多多态关联等等),还能对关系模型添加约束查询,真的非常强大,有需要的多看一下文档吧,文档已经写得很详细了!传送门:http://laravelacademy.org/post/6191.html
相关文章推荐
- laravel 模型关联 的简单使用方法
- laravel eloquent 模型关联
- Laravel 模型关联attach,save,sync方法参数类型验证
- laravel 5.5 -- Eloquent 模型关联
- Laravel关联模型中过滤结果为空的结果集(has和with区别)
- 深入理解 Laravel Eloquent(三)——模型间关系(关联) 在本篇文章中,我将跟大家一起学习 Eloquent 中最复杂也是最难理解的部分——模型间关系。官方英文文档中叫 Relatio
- 深入理解 Laravel Eloquent(三)——模型间关系(关联)
- Laravel5.2之模型关联预加载
- Laravel 关联表模型和多对多关系
- 深入理解 Laravel Eloquent(三)——模型间关系(关联)
- 深入理解 Laravel Eloquent(三)——模型间关系(关联)
- laravel学习教程之关联模型
- 深入理解 Laravel Eloquent(三)——模型间关系(关联)
- Laravel 5.1 文档攻略 —— Eloquent:模型对象序列化
- 使用PD进行数据模型设计时 使name和comment关联
- 5,SFDC 管理员篇 - 数据模型 - 数据关联
- ThinkPHP5-模型和关联操作
- 对象/模型中的单向关联和双向关联
- Visual Studio 2010 建模学习 (十) 由TFS工作项出发找到关联的模型元素
- 事件标记关联优化模型实现