鍍金池/ 問答/Java  PHP  Python  HTML/ 一對多的關(guān)聯(lián)數(shù)據(jù)結(jié)構(gòu),怎么修改?

一對多的關(guān)聯(lián)數(shù)據(jù)結(jié)構(gòu),怎么修改?

問題是這樣的,兩個關(guān)聯(lián)表。
數(shù)據(jù)結(jié)構(gòu)是類似于微博這樣的:內(nèi)容+N張圖片
我分了兩個表,一個表記錄內(nèi)容,另一個表記錄圖片,通過內(nèi)容的ID關(guān)聯(lián)
也就是HAS_MANY的relation關(guān)系
然后我想在前端進行圖片的增刪改
我想過兩種方式:
1、全刪全寫的方式,也就是每次圖片列表有了修改,提交到后端就把舊的全部刪掉,然后把新的寫進去。
2、前端記錄刪除的ID和新增的數(shù)據(jù),傳到后端做刪除和新增兩步操作
我想知道一般是采用什么方式進行刪改??

回答
編輯回答
哚蕾咪

之前也做過類似的功能,我的思路大概是這樣的:

  1. 添加圖片的時候,把添加的圖片路徑(圖片信息參數(shù)等)存儲在input的name為already_photo[]的隱藏域中
  2. 修改的時候,把已經(jīng)存在的圖片路徑取出來,放置在這個隱藏域中,然后在修改的時候,替換(添加)了新的圖片也放在隱藏域中
  3. 提交整個表單的時候,用array_diff這個函數(shù)作對比,與前端文本域和數(shù)據(jù)庫的圖片數(shù)據(jù)作對比。要對比兩次,需要找到添加的和刪除的文件,該刪除的刪除掉數(shù)據(jù)庫信息,并刪除資源文件,該添加的就添加

這樣的好處是,你在添加的時候,就算替換了多次,也能得到不需要的文件信息,在提交表單的時候,通過對比,可以刪除對應(yīng)的資源文件,減少服務(wù)器上的多余資源。

2017年10月27日 17:06
編輯回答
嫑吢丕

你的圖片表不要留主鍵 ,只留兩個圖片的路徑和內(nèi)容id關(guān)聯(lián)就好了,這樣你刪除的時候非常方便,修改的時候就是直接刪除這個圖片表的內(nèi)容關(guān)聯(lián)數(shù)據(jù),然后再添加就好了

2018年6月3日 00:13
編輯回答
風(fēng)清揚

這種的實質(zhì)是內(nèi)容中插入圖片,而圖片可以用id鏈接到實體,實體看怎么存儲啦,但內(nèi)容的修改和插入位置的修改是全面更新的,圖片增加其實就是在圖片庫中添加一個id而已,刪除則不一定刪除實體(當(dāng)然也可以刪除,看具體圖片如何存儲),但這內(nèi)容中沒有了圖片id的引用而已。這樣可能是大多數(shù)處理方法。
不知道你所謂的修改是什么?前端怎么對圖片修改后保存到后端?

2017年8月22日 10:26