楼主:
GoalBased (Artificail Intelligence)
2014-07-08 08:44:07数据库名称:mssql
数据库版本:2012
内容/问题描述:
我有一个表单给使用者填写 ex:
表单编号
5 铅笔 10元
5 原子笔 15元
5 橡皮擦 20元
不过这个表单使用者是可以修改的,有可能使用者只是改了铅笔的价格,
但也有可能是新增一个铅笔盒 50元,又或者是把橡皮擦这笔资料删掉,
这种状况最简单的做法单然是把表单编号5的资料全砍了,
之后新的表单资料再给予编号5,也有其他作法,例如用更新的,
想请问一下,这种状况用什么做法比较好,优缺点又是什么?
作者:
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