一对多的关联数据结构,怎么修改?

问题是这样的,两个关联表。
数据结构是类似于微博这样的:内容+N张图片
我分了两个表,一个表记录内容,另一个表记录图片,通过内容的ID关联
也就是HAS_MANY的relation关系
然后我想在前端进行图片的增删改
我想过两种方式:
1、全删全写的方式,也就是每次图片列表有了修改,提交到后端就把旧的全部删掉,然后把新的写进去。
2、前端记录删除的ID和新增的数据,传到后端做删除和新增两步操作
我想知道一般是采用什么方式进行删改??

阅读 3.6k
3 个回答

你的图片表不要留主键 ,只留两个图片的路径和内容id关联就好了,这样你删除的时候非常方便,修改的时候就是直接删除这个图片表的内容关联数据,然后再添加就好了

这种的实质是内容中插入图片,而图片可以用id链接到实体,实体看怎么存储啦,但内容的修改和插入位置的修改是全面更新的,图片增加其实就是在图片库中添加一个id而已,删除则不一定删除实体(当然也可以删除,看具体图片如何存储),但这内容中没有了图片id的引用而已。这样可能是大多数处理方法。
不知道你所谓的修改是什么?前端怎么对图片修改后保存到后端?

之前也做过类似的功能,我的思路大概是这样的:

  1. 添加图片的时候,把添加的图片路径(图片信息参数等)存储在input的name为already_photo[]的隐藏域中
  2. 修改的时候,把已经存在的图片路径取出来,放置在这个隐藏域中,然后在修改的时候,替换(添加)了新的图片也放在隐藏域中
  3. 提交整个表单的时候,用array_diff这个函数作对比,与前端文本域和数据库的图片数据作对比。要对比两次,需要找到添加的和删除的文件,该删除的删除掉数据库信息,并删除资源文件,该添加的就添加

这样的好处是,你在添加的时候,就算替换了多次,也能得到不需要的文件信息,在提交表单的时候,通过对比,可以删除对应的资源文件,减少服务器上的多余资源。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题