选用哪种方式?
来源: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回答
-
方式1是因为我就要一个列表。
方式2是因为我们两个列表,在给角色添加会员的时候,左边是所有的会员,右边是当前角色下已有的会员
022021-06-11
相似问题
回答 1
回答 1