Office中国论坛/Access中国论坛
标题:
【Access小品】解决个球--问题的高级处理手段
[打印本页]
作者:
todaynew
时间:
2014-12-17 09:37
标题:
【Access小品】解决个球--问题的高级处理手段
本帖最后由 todaynew 于 2014-12-17 16:12 编辑
解决问题的前提是存在一个问题,这句话似乎听起来没什么意义。你会说:这句话是废话,问题不存在还解决个球呀?你的这个反问,恰恰是给出了解决某类问题的方向。这是哪种类型的问题呢?在回答之前,先看两个例子。
例子一:某版友的订单表中包含:订单号、客户名称、电话、地址、付款方式等字段,问如何更改某条记录客户的名称时,同时更改其他相同订单号记录的客户名称、电话、地址。(
http://www.accessoft.com/bbs/showtopic.asp?id=22926
)
例子二:某版友有客户表、联系人表、订单表,问删除联系人或者客户时,如果相关表中存在对应的联系人或客户如何给出提示。(
http://www.accessoft.com/bbs/showtopic.asp?id=22880
)
诸如此类的问题还有很多,对这些问题进行分析后可以发现,这类问题的共同之处就是无意义的伪问题。对于伪问题的解决方法,就是消灭问题。就像你所知道的:问题不存在了,还解决个球。解决此类问题的关键,在于如何甄别问题本身的真伪,以及如何去消灭一个伪问题,使之不成为问题。我们可以以上两个伪问题的解决来说明这种处理方法。
在例子一中,产生伪问题的原因是数据表结构设计部合理,当我们将客户名称、电话、地址这三个字段从订单表中剥离出来,组成一个新的客户表后,例子一的问题就已经不存在了,因此也就消灭了这个伪问题。
在例子二中,实际上是有无必要进行自定义提示的问题,更普遍的说法是有无必要进行优雅而非唐突的处理。我们知道,当在关系视图中建立了表间关系,只要不将这种表间关系设置为联级删除,那么系统就会在删除存在外键记录时,提示不能删除,并中断程序。通常我们将系统提供的这种处理叫做“唐突的处理”,如果我们设置自定义提示或采取一些判断,就可以避开系统“唐突的处理”,而采取一种更优雅的方式。
问题不在于我们用什么办法来做优雅的处理,而在于什么情况下去做优雅处理。我们知道,客户表、联系人表是一个系统的基础资料,其删除的权限是需要控制在非常小的范围内的。也就说,绝大多数用户是不具有删除客户表和联系人表的权限,而只有系统管理员、资料维护员这类系统角色具备这个权限。在一个很少人使用的权限中,去做优雅处理是没有什么必要的。优雅的处理通常是要面对大多数用户,使他们感觉程序是流程而没有意外的。由此我们不难判断,例子二是一个伪问题,无需做什么处理。
到此我们基本窥见到了伪问题以及对伪问题的处理方法,我们可以总结一下了。对于问题,首先我们需要的不是就问题解决问题,而是首先判断它是不是伪问题,看看能否消灭伪问题。而消灭伪问题,需要根据情况来做出偷梁换柱(例子一)、置之不理(例子二)等处理。
作者:
goto2008
时间:
2014-12-17 11:59
好久好久没来论坛了,还记得我吗,哈哈
作者:
todaynew
时间:
2014-12-17 13:47
goto2008 发表于 2014-12-17 11:59
好久好久没来论坛了,还记得我吗,哈哈
当然记得。
望代问GG好。
作者:
hannanrenjie
时间:
2014-12-17 21:23
仿佛无意义,其实有深义!
作者:
owen2016
时间:
2016-8-20 15:34
已经下载学习,谢谢
作者:
boon
时间:
2019-4-9 13:04
谢谢分享
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3