@@ -81,6 +81,9 @@
模型关系的定义
注意相互的从属关系:hasOne是父模型对于子模型的定义,belongsTo是子模型对于父模型的声明(一般而言:本表存在关联表的外键使用belongsTo,关联表存在本表的外键使用hasOne)
建议:对于超长模型命名可忽略同级的前缀。(示例:user与userLog 模型关系可直接称之log)
+ 关联查询
+ 慎用whereHas进行查询,whereHas生成的sql是 where exists 进行关联查询,当左表大于由右表时,左表就会成为性能瓶颈。where exists 会将右表查出来的结果同左表匹配。查出多少条就会匹配多少次。而且不走索引的全表扫描。
+ 建议先查出右表,再根据关联关系查左表。
##控制台命令
将命令的实际逻辑写成Service方法,方便复用调用和测试
##数据库