注册 登录
编程论坛 ASP技术论坛

[求助]sql 问题 急

DACHENER 发布于 2007-09-20 11:24, 641 次点击

方法一:有新数据即插入表1( insert 一次),取出一条有效记录要对表1查询三遍(select 三次 进行各项值等等的比较)

方法二:有新数据即对当前表 表1 已有对应数据更新 ( update一次),并且更新操作前,查询当前对应数据(select一次)取出所有值 插入备份表,表2 (insert一次),取出当前表1一条有效记录,查询一次即可(select一次)

哪个方法的效率高点,不累服务器

10 回复
#2
DACHENER2007-09-20 11:35
大家 帮随便说点意见吧 我在线等啊
#3
yms1232007-09-20 11:39
楼主要做什么?
#4
bingling5092007-09-20 11:56
意思似乎都没有说清楚诶!
#5
DACHENER2007-09-20 13:20
回复:(bingling509)[em13]意思似乎都没有说清楚诶!...

我的需求是:对表中的数据的删除,修改操作能 全部记录下来,当作历史记录,要以后能够查询

现有两种思路:

对应上面说的

方法一 : 设计表1,表中增设一项 edit_time项,记录修改时间,时间最新的记录即为当前记录,其它记录为历史
记录.

涉及到的操作就是:

有新数据即插入表1( insert 一次),取出当前记录(时间最新的)要对表1查询三遍(select 三次 进行各项值
等等的比较)
方法二:设计表1,备份表2(各表项与表1一样)

涉及到的操作就是:

有新数据即对当前表,表1中已有对应数据更新 ( update一次),并且更新操作前,查询当前对应数据(select
一次)取出所有值 插入备份表,表2 (insert一次),取出当前有效记录,查询一次即可,不需比较(select一
次)

我就是想知道,那个显得效率高点,不会让访问网页显得慢??






#6
DACHENER2007-09-20 13:22
回复:(DACHENER)回复:(bingling509)[em13]意思似...

我自己顶一下,大家帮忙给点建议啊 一直等着啊

#7
yms1232007-09-20 13:25
如果是SQL Server或Oracle的数据库,可以在数据库端写触发器来做记录,Access的比较麻烦(个人所知Access对触发器支持的不是很好)。
#8
DACHENER2007-09-20 13:29
回复:(yms123)如果是SQL Server或Oracle的数据库,...

我用的倒是 sql server

弱问,asp 中怎么调用触发器啊,还没有用过

另外,我上面的两种思路,如果要用的话,你觉得哪个相对好点,谢谢啊

#9
hmhz2007-09-20 13:29

在每次操作时多写个插入语句,将本次操作的内容记录到另一个表就是了

#10
DACHENER2007-09-20 13:37
回复:(hmhz)在每次操作时多写个插入语句,将本次操...
那就是我的第二种思路了
#11
yms1232007-09-20 13:37
以下是引用DACHENER在2007-9-20 13:29:19的发言:

我用的倒是 sql server

弱问,asp 中怎么调用触发器啊,还没有用过

另外,我上面的两种思路,如果要用的话,你觉得哪个相对好点,谢谢啊

触发器是自动调用的,这个触发器是在SQL Server端进行创建。
所谓触发器跟javascript的事件机制差不多,当在数据库中对某个表执行某种操作时,数据库会自动执行一段代码。
这段代码就被称之为触发器。

1