Office中国论坛/Access中国论坛

标题: 请教程式思路 [打印本页]

作者: netbug    时间: 2003-5-3 20:09
标题: 请教程式思路
我有个订单程式,想查询还没完成交货的纪录。我用 [已送货] TRUE/FALSE 为准则。可是我想如果表的记录有100000 甚至更多,那会消耗电脑的资源。

我的思路是:
表1 为 订单, 表2为 完成订单。这两个表的字段是相同的。
当表1的 订单 [已送货]为 TRUE 时进行以下指令:
1.复制此记录到 表2
2.在表1删除此记录

这样一来,对表1进行查询未交货的记录也减少了。
请问这样的思路正确吗? 该使用哪些函数?
还是有其他方法?望告之,感激不尽 。

还有,请问何为交叉查询?

THANKS :>


作者: zhuyiwen    时间: 2003-5-4 01:03
只需设置TRUE/FLASE就行了,何必要倒来倒去!查询就关系数据库的最大优势,关键是你要给定适合你的查询的条件。

交叉查询一般用来求取统计值,与你上面的东西无关。

[em24][em24]
作者: netbug    时间: 2003-5-4 03:41
HMM。。假设有100000记录,有的是已完成的订单(已送货);有的还没有,也可能只送一半的货。那我每天要出货时,就得对表1里边的记录, 从 第1笔至1000000笔作查询,然后找出还没完成的订单列印给仓库,让他们送货。
有没有可能把未完成的订单,复制到另一表。可能未完成的订单记录只有100笔。 那查询就快了些。

 请问这样的思路正确吗? 该使用哪些函数?
还是有其他方法?望告之,感激不尽 。
 THANKS zhuyiwen.




[此贴子已经被作者于2003-5-3 19:43:14编辑过]


作者: Roadbeg    时间: 2003-5-4 04:00
以下是引用netbug在2003-5-3 19:41:09的发言:
HMM。。假设有100000记录,有的是已完成的订单(已送货);有的还没有,也可能只送一半的货。那我每天要出货时,就得对表1里边的记录, 从 第1笔至1000000笔作查询,然后找出还没完成的订单列印给仓库,让他们送货。
有没有可能把未完成的订单,复制到另一表。可能未完成的订单记录只有100笔。 那查询就快了些。

 请问这样的思路正确吗? 该使用哪些函数?
还是有其他方法?望告之,感激不尽 。
 THANKS zhuyiwen.
[此贴子已经被作者于2003-5-3 19:43:14编辑过]

不建议将未结案订单换表储存,因为这会相给其它操作带来很多不便,你真的对查询效率有疑惑的话,可以自己做个例子试一个.
先随机生成 100000 条记录,并设置结案标志字段的值,你可以自己用查询试一下效果.

不过你可以把几个月以上的,通常不会再用到的,已结案订单资料换表储存,以提高效率.



作者: zhuyiwen    时间: 2003-5-4 04:21
有理!
作者: huanghai    时间: 2003-5-4 04:29
"这样一来,对表1进行查询未交货的记录也减少了。
请问这样的思路正确吗? 该使用哪些函数?
还是有其他方法?望告之,感激不尽 。"

这样做的读取数据时会快些,但是快不了多少,因为一用一个BIT的字段作条件查询非常快。而且这分开做成两个表就是所谓的反向规范化,这样做的前提是对性能有很大的改善,我觉得不分开比较合理些。

如果一定要这样做也可以,如果还要得到一个综合的数据,可以使用UNION。


作者: netbug    时间: 2003-5-4 08:54
多谢班竹的提点。 :>




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3