我在尝试将嵌套条件映射到直观界面时遇到了麻烦。
例如。你将如何表示((条件1和条件2)或(条件1和条件5))和条件4
答案 0 :(得分:7)
这是我几年前为linux应用程序做的原型的截图。您可以单击+/-图标向组添加行,然后单击“添加新...”和“删除最后...”按钮以删除最底部的组。
在每组之上是一对选择的“AND项目匹配......”/“OR项目匹配......”(除了第一组略有变化),以及“ANY of以下“/”以下全部“。每行都是类型感知的,因此如果您为变量选择了一个字符串,则条件为“IS”,“IS NOT”,“BEGINS WITH”等等。对于整数,你会得到“IS”,“GREATER THAN”等,以及日期“ON”,“BEFORE”,“ON or BEFORE”等等。
如果您在第一组的第二行和第三行之前看到“或”一词,那么如果选择“以下任何一项”,则为“或”,如果“以下所有”,则为“和”:被选中以加强选择并使其更容易“阅读”对话框。
它不会让你做任何可以想象的查询,但我认为它涵盖了普通用户想要做的大约90%,并以我认为相当有用的方式做到了。
(来源:clearlight.com)
答案 1 :(得分:3)
有些人会认为这是直观的。
答案 2 :(得分:2)
假设.NET,我会使用DataGridView来存储每个条件,并在创建时为每个条件分配一个ID,并有一个允许您输入特定查询条件的文本框。
然后,您可以在编写完所有条件后,允许一次使用AND或OR组合2,然后显示生成的查询以进行验证
条件1
条件2
Condition3
Condition4
Condition5
在你的情况下,一旦你将每一个添加到你的数据集并填充DataGridView,你就会这样做(我想象一个带有3个下拉框的表单,顶部一个和底部一个允许条件或“复合”和中间下拉列表仅和/或:
Condition1 AND Condition2 =“Compound1”
条件1和条件5 =“化合物2”
化合物1或化合物2 =“化合物3”化合物3和条件4 =“化合物4”
和compound4是您的最终查询
有意义吗?
答案 3 :(得分:2)
答案 4 :(得分:1)
Microsoft SQL Server有这样的界面,我在SQL Server 2000中使用它,但我敢打赌它在2005年表达,所以你可以看看你是否愿意。
答案 5 :(得分:1)
如果这很重要,可以花很多时间,我会考虑使用维恩图。可视化将表示结果集而不是查询术语。因此,为了演示AND,您将显示两个代表结果的圆圈,并突出显示它们之间的重叠(交点)。
为了演示OR,您将显示两个圆圈并突出显示两者的结合。
然后,要显示整个多部分查询,您可以显示五个圆圈,其中包含一些联合和交叉的组合,或者组合每个括号然后隐藏细节,使结果成为一个新的圆圈以与其他元素组合。这里有很多拖放,为了清晰起见,动态调整子条款的大小。
为了使这个直观且易于使用需要相当多的工作,但对于某些应用程序,它将是一个非常强大的界面。
答案 6 :(得分:1)
查看EasyQuery的任何现场演示:
http://devtools.korzh.com/easyquery/livedemos/
它是商业软件,但“条件”部分允许您添加单个条件或条件组,这从具有多个AND和/或OR的子句中消除了很多复杂性。它做得非常好,易于使用。
(我与EasyQuery没有任何关系,只是对他们的查询构建器印象深刻。)
答案 7 :(得分:0)
我见过的最好的界面是一个本土控制,它画了一棵树,清楚地显示了操作的顺序。我从来没有见过这样做的第三方控件,但我也没有找过。
答案 8 :(得分:0)
您可以查看MS Access的工作方式。我不会直截了当地说它,但很简单。
答案 9 :(得分:0)
我曾经在一个系统上工作,我们将布尔逻辑对齐类似于下面的内容。
右列(内部)和(外部)提供两级逻辑。
Variable Inner Outer Condition1 And Condition2 Or Condition1 And Condition5 And Condition4 Or more optimized... Condition4 And Condition1 And Condition2 Or Condition5
答案 10 :(得分:0)
它特定于其域名,但f-spot有一个很好的方法。它是照片管理软件,如果您点击其中一个标签按标签查找图片,它会在搜索结果顶部显示一个条形图。然后,您可以将标签拖放到该栏上,然后右键单击以选择否定,并可以在栏中拖动标签以分组到和和或子句中。我不确定多少标签(或非枚举条件)的扩展程度如何,但它很容易弄清楚并且很容易互动。