[SQL ] 資料更新

作者: GoalBased (Artificail Intelligence)   2014-07-08 08:44:07
資料庫名稱:mssql
資料庫版本:2012
內容/問題描述:
我有一個表單給使用者填寫 ex:
表單編號
5 鉛筆 10元
5 原子筆 15元
5 橡皮擦 20元
不過這個表單使用者是可以修改的,有可能使用者只是改了鉛筆的價格,
但也有可能是新增一個鉛筆盒 50元,又或者是把橡皮擦這筆資料刪掉,
這種狀況最簡單的做法單然是把表單編號5的資料全砍了,
之後新的表單資料再給予編號5,也有其他作法,例如用更新的,
想請問一下,這種狀況用甚麼做法比較好,優缺點又是甚麼?
作者: NullLife (廢材大叔有點累)   2014-07-08 09:43:00
再多加一個序號就好啦 然後把編號+序號設為unique其實也不用 反正有名字可以識別是哪一筆資料 或用seq
作者: up9cloud (九天)   2014-07-08 10:23:00
站在使用者立場,做任何一件事都即時存取更新最好。缺點就是code會複雜些,花的時間多一些...
作者: bohei (run and fall)   2014-07-08 12:41:00
我看不太懂你問題的核心是什麼@@純粹用UPDATE的最快吧? 先DELETE再INSERT等於兩次指令了你說的批次DELETE再INSERT的情況應該是適用於整個table要重新建立,可直接DROP,然後INSERT,最後再建立INDEX,省去逐筆INSERT還要排序INDEX的時間不知道你考慮要不要使用UPDATE的點在哪,因為直觀就是直接UPDATE吧,不妨把你顧慮的點說出來,可以討論討論使用者修改的表單會有一個TEMP做記錄嗎? 如果會的話,可以考慮將temp與實際資料的table做MERGE至於你提到的新資料要INSERT,這是一定要的阿~~~~但可以用UPDATE的就用UPDATE,可以省去重複DELETE,INSERT排INDEX的時間摟~再請問一下,你覺得整個DELETE再INSERT,這樣的程式碼可以應付所有情況,所以才偏向這樣的做法嗎XD那MERGE應該是最簡單又最快速(效能)的做法吧..自動幫你比對,條件符合(重複)使用UPDATE,無符合條件資料(新增)使用INSERT
作者: up9cloud (九天)   2014-07-09 02:00:00
整份上傳跟單項修改就異動,資料多時差別真的蠻大的...我不覺得對使用者沒影響,供你參考嚕...

Links booklink

Contact Us: admin [ a t ] ucptt.com