选用哪种方式?

来源:10-4 基于OSS原生SDK上传视频到点播1

慕神4535282

2021-05-31

老师,下午好!
问题内容有点多,麻烦老师耐心看完,谢谢!
,我总结了一下,关于多对多关系的后台设计接口时有两种方式?
方式1. 像CourseService.java中的list(CoursePageDto pageDto)函数那种,通过调用myCourseMapper.list(pageDto)来实现,其基本原理是通过底层的sql语句(select … from course c , course_category cc)来实现。如此一来,对于course_category这样的多对多中间关联表,最终查出来的是符合categoryId的可分页的多条course表记录。
方式2. 像role.vue的listUser()函数那样,前端请求两次,一次是请求/system/admin/user/list接口,一次是请求 ‘/system/admin/role/list-user/’ + _this.role.id ,前一个请求对应于后端查询user表,后一个请求对应于后端查询 role_user 表(多对多)。

可以看到,方式2与方式1不同,方式1是一次请求,后端查询2张表,最终返回的数据就是前端所需要的。
而方式2则是发一次请求,后端就查询一张表,因此,前端发了2次请求,一次查出来user表中的所有记录,一次查出来role_user表中的rold_id为_this.role.id的所有user_id,然后,通过前端的两个嵌套for循环和一个if判断才最终筛选出符合要求的数据集。

我的问题是: 无论从带宽,还是从减轻前端计算量上来说,方式1都优于方式2,那为什么还要用方式2呢?他的优势在哪?
谢谢老师解答!!!

写回答

1回答

甲蛙

2021-06-04

方式1是因为我就要一个列表。

方式2是因为我们两个列表,在给角色添加会员的时候,左边是所有的会员,右边是当前角色下已有的会员

//img.mukewang.com/szimg/60b9df6c091910db12310724.jpg

0
2
甲蛙
回复
慕神4535282
数据量不大,都可以的。数据量大的话,建议后端接口就返回简单数据,把大任务交给前端来做。毕竟服务器只有一台,尽量减少服务器的压力
2021-06-11
共2条回复

Spring Cloud+ Vue前后端分离开发企业级在线视频系统

全网稀缺课程 市场热门项目+主流框架 一课掌握前后端技术

1743 学习 · 1697 问题

查看课程