一对多关联如何删除高效的更新关联表中的数据

文章表和图片表进行一对多关联时,在文章编辑页面进行文章修改并对关联的图片进行修改后提交数据保存,应该使用什么方法才能高效的更新。
详细说明:
在文章编辑页面,文章标题修改后,又把文章关联的4张图片删除了一张,修改完之后提交修改数据,前台把数据传给后台的是一个文章和3个照片。按照最简单易懂的方式就是把这个文章关联的照片全部删除然后重新插入三张照片。但是这样全删再全插入的方式很消耗性能,有没有其他更好的方法。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 17

在前端请求编辑文章时,把图片表的 url 地址和 id,都返回给前端,前端在删除一个图片后,在 del_arr 对象中添加这个 id, 同理,在上传图片后,存储在 add_arr 对象中。

后端接口接收到请求数据后,对于图片的处理去遍历 del_arradd_arr 这俩对象就可以确定删除哪个图片,上传哪个图片了。 并不需要重新删除写入一次。

3年前 评论
qixi0313 (楼主) 3年前
MArtian (作者) 3年前
qixi0313 (楼主) 3年前
MArtian (作者) 3年前
qixi0313 (楼主) 3年前
qixi0313 (楼主) 3年前
MArtian (作者) 3年前
qixi0313 (楼主) 3年前
MArtian (作者) 3年前

创建文章就不说了,直接插入关联数据。

但在编辑时删除图片,我想象中的 ui 应该是在所有图片的右上角都有删除图标,当我点击删除时,我会发出 ajax 请求接口,来删除这个模型中关联的图片ID。

如果在编辑时插入图片,我会继续 ajax 请求来插入单条模型中关联的图片。

这时要区分当前是在创建还是在编辑,创建时不需要进行 ajax ,因为这时候你还没拿到文章ID,当编辑时会拿到文章ID,ajax请求就根据这个ID去操作关联数据即可

3年前 评论
qixi0313 (楼主) 3年前
畅畅 (作者) 3年前
畅畅 (作者) 3年前

获取文章的图片,然后算差集,就知道要删除哪个,要添加哪个。然后作出对应的操作即可。

3年前 评论
qixi0313 (楼主) 3年前
skys215 (作者) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!