一对多关联如何删除高效的更新关联表中的数据
文章表和图片表进行一对多关联时,在文章编辑页面进行文章修改并对关联的图片进行修改后提交数据保存,应该使用什么方法才能高效的更新。
详细说明:
在文章编辑页面,文章标题修改后,又把文章关联的4张图片删除了一张,修改完之后提交修改数据,前台把数据传给后台的是一个文章和3个照片。按照最简单易懂的方式就是把这个文章关联的照片全部删除然后重新插入三张照片。但是这样全删再全插入的方式很消耗性能,有没有其他更好的方法。
关于 LearnKu
在前端请求编辑文章时,把图片表的 url 地址和 id,都返回给前端,前端在删除一个图片后,在
del_arr对象中添加这个id, 同理,在上传图片后,存储在add_arr对象中。后端接口接收到请求数据后,对于图片的处理去遍历
del_arr和add_arr这俩对象就可以确定删除哪个图片,上传哪个图片了。 并不需要重新删除写入一次。创建文章就不说了,直接插入关联数据。
但在编辑时删除图片,我想象中的 ui 应该是在所有图片的右上角都有删除图标,当我点击删除时,我会发出 ajax 请求接口,来删除这个模型中关联的图片ID。
如果在编辑时插入图片,我会继续 ajax 请求来插入单条模型中关联的图片。
这时要区分当前是在创建还是在编辑,创建时不需要进行 ajax ,因为这时候你还没拿到文章ID,当编辑时会拿到文章ID,ajax请求就根据这个ID去操作关联数据即可
获取文章的图片,然后算差集,就知道要删除哪个,要添加哪个。然后作出对应的操作即可。