设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1904|回复: 6
打印 上一主题 下一主题

[与其它组件] 请教程式思路

[复制链接]
跳转到指定楼层
1#
发表于 2003-5-3 20:09:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我有个订单程式,想查询还没完成交货的纪录。我用 [已送货] TRUE/FALSE 为准则。可是我想如果表的记录有100000 甚至更多,那会消耗电脑的资源。

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

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

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

THANKS :>

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

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

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

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

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




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

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

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

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

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


点击这里给我发消息

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

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

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

7#
 楼主| 发表于 2003-5-4 08:54:00 | 只看该作者
多谢班竹的提点。 :>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-5 04:11 , Processed in 0.075666 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表