Foxtable(狐表)用户栏目专家坐堂 → [讨论]SQLJoinTableBuilder是否应该存异呢?


  共有13002人关注过本帖树形打印复制链接

主题:[讨论]SQLJoinTableBuilder是否应该存异呢?

帅哥哟,离线,有人找我吗?
reachtone
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19403 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2011/6/20 21:29:00 [只看该作者]

下午一直在研究几个统计工具,现有些想法不知对不对?跟大家探讨一下:

    1、GroupTableBuilder和CrossTableBuilder已经非常强大了,不仅可以直接统计数据表,还支持临时的datatable,甚至是一条sql语句。这样就能完美的解决两大统计工具在添加关联表时的“多对多”问题。

    2、上述两大统计工具完成的统计结果,可以通过Combine进行组合。Combine的唯一不足就是无法将不同统计结果中的列,重新组合新的表达式以生成新列。

    3、查询表生成器SqlJoinTableBuild,是从多个表中提取相关列组合成一个查询表,组合的过程中可以生成表达式列。这是个新的工具,经多次测试,它貌似只能从现有的Table中来查询生成。如果这样的话,我反倒觉得这个工具没有存在的必要了。试想,在实际工作中,有可能会先生成几个现成的Table、然后再用它来查询组合吗?因为我们想得到的是查询结果,为了得到这个查询结果还要先生成几个数据Table,这也太绕了。即使是直接调用后台数据库中的表,相关的表也必须是先物理存在的。因此,如果SqlJoinTableBuild组合的对象必须是Table或者是后台数据库中物理存在的表,我个人觉得它存在的意义不大。除非,SqlJoinTableBuild组合的对象可以是临时的datatable(包括上述两大统计工具生成的结果)或者是sql语句,这样才更有实用价值。不过,话说回来,再费非常多的精力来完善这个SqlJoinTableBuild,倒不如集中精力把Combine做好,无非是想办法支持表达式就OK了。

    个人意见,仅供参考。

[此贴子已经被作者于2011-6-20 21:35:00编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
kylin
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 F6
等级:狐精 帖子:3030 积分:19188 威望:0 精华:2 注册:2008/9/1 7:50:00
  发帖心情 Post By:2011/6/21 0:11:00 [只看该作者]

以下是引用reachtone在2011-6-20 21:29:00的发言:

下午一直在研究几个统计工具,现有些想法不知对不对?跟大家探讨一下:

    1、GroupTableBuilder和CrossTableBuilder已经非常强大了,不仅可以直接统计数据表,还支持临时的datatable,甚至是一条sql语句。这样就能完美的解决两大统计工具在添加关联表时的“多对多”问题。

    2、上述两大统计工具完成的统计结果,可以通过Combine进行组合。Combine的唯一不足就是无法将不同统计结果中的列,重新组合新的表达式以生成新列。

    3、查询表生成器SqlJoinTableBuild,是从多个表中提取相关列组合成一个查询表,组合的过程中可以生成表达式列。这是个新的工具,经多次测试,它貌似只能从现有的Table中来查询生成。如果这样的话,我反倒觉得这个工具没有存在的必要了。试想,在实际工作中,有可能会先生成几个现成的Table、然后再用它来查询组合吗?因为我们想得到的是查询结果,为了得到这个查询结果还要先生成几个数据Table,这也太绕了。即使是直接调用后台数据库中的表,相关的表也必须是先物理存在的。因此,如果SqlJoinTableBuild组合的对象必须是Table或者是后台数据库中物理存在的表,我个人觉得它存在的意义不大。除非,SqlJoinTableBuild组合的对象可以是临时的datatable(包括上述两大统计工具生成的结果)或者是sql语句,这样才更有实用价值。不过,话说回来,再费非常多的精力来完善这个SqlJoinTableBuild,倒不如集中精力把Combine做好,无非是想办法支持表达式就OK了。

    个人意见,仅供参考。

[此贴子已经被作者于2011-6-20 21:35:00编辑过]

严重关注中,呵呵


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/21 8:11:00 [只看该作者]

呵呵,SqlJoinTableBuilder还是有些用的,因为为了排除数据冗余,相关数据通常分布在不同的表中,例如订单表通常只是通过产品编号和产品表关联起来,订单表本身不会包括品名、型号、规格之类的列。

当然,我们也可以用表达式列实现,但是显然SqlJoinTableBuilder提供了另一个选择,使得我们的编码更加灵活。

 

至于Combine既然是组合统计结果,而统计工具都可以直接指定列名,所以也不存在Combine不能处理同名列的命题了,统计的时候分别指定列名吧。

[此贴子已经被作者于2011-6-21 8:31:47编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19403 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2011/6/21 8:34:00 [只看该作者]

以下是引用狐狸爸爸在2011-6-21 8:11:00的发言:

 

至于Combine既然是组合统计结果,而统计工具都可以直接指定列名,所以也不存在Combine不能处理同名列的命题了,统计的时候分别指定列名吧。

我指的不是这个,我是说不同的统计结果中,可以用它们中的列组合生成新的列,不用再AddCol了。AddCol一是效率低(组合完成后还要添加列),二是麻烦(需要调整位置,因为AddCol都是添加到最后的)。

例如,Combine的左表有“金额”,右表有“数量”,希望在Combine的时候可以自定义一个Exp生成“单价”。这样效率高,顺序也不用调整了。


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/21 8:39:00 [只看该作者]

以下是引用reachtone在2011-6-21 8:34:00的发言:

例如,Combine的左表有“金额”,右表有“数量”,希望在Combine的时候可以自定义一个Exp生成“单价”。这样效率高,顺序也不用调整了。

 

没必要了,直接用代码在组合后的表中添加表达式列即可。

现在Combine非常简洁,一行代码即可,加上这个就完全变模样了。


 回到顶部
总数 15 上一页 1 2