[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