是构造sql语句还是分部检索然后再组合结果集

手头有一个证券方面的项目,要求针对七八十张表进行检索和统计,管理员会自定义检索/统计单元,这些单元可能是这些表中的一个字段,也可能是一个统计列(涉及多张表中的多个字段)。用户在使用时会按照or and 组合这些检索/统计单元(用户在组合时会传递一些参数),最终获得命中的股票代码,并把所选的单元信息都显示出来。
我考虑的头都大了,觉得通过构造sql语句很麻烦。所以基本决定按照单元来组织检索语句。每个单元维护自己的sql语句和动态获得的参数。
采用按照每个单元先逐个获得结果集(股票代码),然后再对这些结果进行 or and 运算,最後得到需要的(股票代码结果集)

至于显示,我只能以单元为单位,按照该单元的sql,一列一列地取得这个单元的信息。

不知道这样是否可行,或者有类似经验的大虾请执教。

关注.同样的问题.

hut:
你有什么好的想法可以分享一些吗?

如果原始数据量庞大,而用户的查寻范围相对比较稳定,我觉得可以实现将一部分实时性要求不高的数据,经过一定组合处理,然后导到一张临时表中,这样,真正查询的时候,仅可以用这样表去mapping其他的表。

也不知道,我有没有误解你的问题。

是不是在做智能选股方面的东西啊:)

我觉得千万不要用构造SQL来做,那样的话会太复杂,而且不利于将来的维护和扩展。。。。

对于过滤条件可以单独拆开,
一种方法是根据条件,各自选完再根据AND OR过滤,不过这样的话我觉得效率不是很高;
另一种就是根据某个条件先过滤大部分数据,然后用剩下的数据再去找的话,效率会高很多的。。。

如果采用构造SQL的话建议参考“装饰模式”,这样会比较容易扩展和维护。