在前面两章我们讲解了一对多关系的处理。在RDS系统中是支持两种方式处理关联的
- Thinkphp关联查询
- 原生SQL查询
我们前面的处理方式就是第一种Thinkphp关联查询。其实针对多表或者多个子查询的复杂视图,我们是可以使用原生SQL来解决问题的。
我们以商品和分类模型为例,演示通过SQL实现的功能菜单。
基本字段
创建关联字段和虚拟字段
因为分类和商品之间的关系是一对多的关系,我们需要:
- 在商品表中创建“分类(cate_id)”字段来存储分类信息。因为目的是存储,所以需要创建字段。
- 在商品表中创建“分类(cate_name)”字段来展示分类名称信息。因为目的是展示,所以不需要创建字段,我们一般称之为虚拟字段。
说明:在前面的Thinkphp关联查询时,分类字段名和原表中的名字一致,这是因为系统可以自动处理别名问题。这里,分类字段设置为cate_name是必须的,因为原生SQL查询必须自己处理别名问题。
创建category_name字段时,设置为不创建字段,且无需选择所属表。
如下图所示,name行创建字段为否,是否录入为否:
数据列表设置
最终业务界面
注意事项
如果是在数据列表中采用了原生SQL的方式实现数据列表,则需要注意,如果还存在详情方法,即上图所示的”查看详情“,则也需要在这个方法上做与数据列表相同的设置:配置SQL查询。