2011-01-27 62 views
3

我有一個多對多表,其中我輸入一些表單信息。我最近使這個表單變爲動態的,這樣當輸入元素值發生變化時,它就會通過AJAX發送到數據庫。MySQL多對多。刪除或編輯?

所以我的問題是: 它更快,試圖找到存在的價值,對其進行編輯,創建不感興趣,並刪除不再使用的OR我應該刪除所有的個id的值,並插入所有新的?

迴應評論,闡述。

  • 一種形式,它有大約10個字段。其中一些是強制性的,有些則不是。每次訪問它時,它都會生成一個隨機標識符。
  • 當用戶開始填充表單時,在元素丟失之後,整個表單通過AJAX提交,並且所有非空的值都被輸入到多對多表中。
  • 該表有3個字段:形式識別器元素名稱元件值;

問題轉述: 如何刪除所有條目與所需的表格識別器,或嘗試查找場和編輯?

+0

我想你必須詳細說明你的Many2Many表格的形狀,以及你的AJAX表格如何影響它,才能獲得有價值的信息。 – Romain 2011-01-27 14:03:43

回答

3

這將需要更少的代碼刪除所有現有的關係,並添加新的

  • 確保您的交易做正確
  • 處理錯誤

代碼越少意味着更少錯誤,更少的開發者時間。所以這絕對是更快。

+0

+1。除非有成千上萬的行,否則延遲不應該引人注意。無論如何,成千上萬的行不可能發生在一個理智的UI中。一次刪除也可能會減少到DB的往返次數。 – 9000 2011-01-27 14:16:33

1

我總是刪除所有這種情況下的所有&插入。我懷疑它會有更多的處理時間來搜索,編輯,創建,刪除。

您也可以嘗試尋找:

INSERT INTO table (field1, field2) VALUES ('Value1', 'Value2') 
ON DUPLICATE KEY UPDATE field1 = 'Value1' 

這將插入新記錄或更新現有的 - 我仍然懷疑刪除/插入要快 - 這取決於字段數你會在任何時候更新。