版友
正在隐身同志,希望对我很早以前写的《一塌糊涂》做一个修改,想要实现选择几个字段拼出筛选语句来,对此种想法我颇不以为然。
关于通用的筛选方法,有很多版友做过研究,也给出了很多精彩绝伦的处理方案,其中采用字段列表和逻辑运算符拼出逻辑表达式的处理方法确实有人做出来过。不过对于此方法的实用性,我是表示怀疑的。为什么表示怀疑呢?我以为问题出在假设和前提上。一般来说,我们对于系统某个功能的使用对象--用户,是需要做出恰当的判断的。也就是说,我们要从假设出发,来构建一种使用的场景,然后在这个基础上来确立解决问题的方案。
对于SQL语句的特定逻辑表达式,会出现三类用户,第一类是完全搞球不清,第二类是满脑袋门清,第三类是似懂非懂。那么针对这三类用户就会有三种不同的处理方案。其中似懂非懂的这一类是比较难以处理的,因为你不知道他们具体掌握了多少,他们中的每个个体的程度都会有差异。所以一般来讲,这一类用户你要么归并到第一类,要么归并到第二类,不要指望能写出满足第三类用户的东西来。
通过字段列表和逻辑运算符拼出逻辑表达式的处理方法,实际上是针对第三类用户来写的。正如前所述,这是没必要也达不成目地的。所以实际上通用的筛选方法的处理方案,只是需要针对前两类用户处理。而且,从技术上来说,这种处理方案繁杂,不仅对于编程如此,对于操作也是如此。
我在《一塌糊涂》一文中所做的示例,它所假设的用户实际上是第一类用户。如果针对第二类用户写处理方案,其逻辑会更加简单。为了说明这两种处理方案的不同,我在这个示例上略微做了些修改,分别做出针对前两类用户的处理逻辑,供初学者参考。
总结一下:问题处理方法的优劣,很大程度上不取决于技巧,而取决于合理的假设。请初学者时刻记住:代码咱们去哪?
示例:
点击下载此附件
视图: