2015-08-24 91 views
-1

讓我們說我們有一個帶有5個字段的聯繫人表的SQL數據庫; contactID,title,firstName,middleName和lastName。在前端我們有一個更新按鈕的個人資料頁面。數據庫操作

我們還要說,我們希望允許用戶更新任何給定的字段,而不必在其他字段中輸入數據(例如姓氏更改)。有沒有一種「簡單」的方法來實現這一點?

我的解決方案是爲每個屬性添加一個位域,並添加一系列條件語句以基於位域生成UPDATE語句。

這是醜陋的,似乎效率低下。有什麼建議?

+0

只允許在所需的列空,並在您更新一句話忽略他們 – ivan

+0

這個問題過於寬泛,給你一個正確的答案。 –

+1

我同意@JuanCarlosOropeza。這個問題太廣泛了。 –

回答

3

最好的方法是將所有字段中的數據從數據庫中檢索並更新所有字段。如果用戶更改該值,它將更新爲新值。否則,它將保持原來的價值。

假設您從數據庫中檢索到所有值,並且單擊編輯按鈕時,它們是可編輯的(文本框),其中舊值已存在於其中。然後編寫一個查詢類似

update contacts set title [email protected], [email protected], [email protected], [email protected] where [email protected] 
+0

所以你說當用戶去編輯他們檔案中的單個字段時,系統會使用檔案頁面中的數據更新整個記錄[所有字段]? – DaedalusK71

+0

是的。如果他改變了某些東西,那麼數據將被更新。否則,更新的數據將與舊數據相同。 –

+0

這對我來說似乎沒有效率。爲什麼更新沒有改變的字段?這不會使用額外的和不必要的處理嗎? – DaedalusK71