2008-09-22 14 views

Respuesta

0

La mejor interfaz que he visto para esto fue un control interno que dibujó un árbol para mostrar claramente el orden de las operaciones. Nunca he visto un control de terceros que haya hecho esto, pero tampoco he buscado ninguno.

1

Microsoft SQL Server tiene una interfaz como esa, la he usado en SQL Server 2000 pero apuesto a que también está en 2005 express para que pueda verla si lo desea.

+0

Gracias, voy a echar un vistazo. – ilitirit

2

Suponiendo .NET, me gustaría ir con un DataGridView para almacenar cada condición y para asignar cada una una ID a medida que se crea y tener un cuadro de texto que le permite ingresar a las condiciones particulares de la consulta.

A continuación, podría, una vez que todas las condiciones se han escrito para permitir la combinación de 2 a la vez, ya sea con un AND u OR y luego mostrar la consulta resultante para la verificación

Condición1

Condición2

Condition3

Condition4

Condition5

en su caso, una vez que agregue cada uno a su conjunto de datos y llene DataGridView, lo haría (imagino un formulario con 3 cuadros desplegables, uno superior y uno inferior permiten condiciones o "compuestos" y el menú desplegable central es Y/O solamente:

Condición1 Y Condition2 = "Compuesto 1"

Condición1 Y Condition5 = "Compound2"

Compuesto 1 O Compound2 = "Compound3"

Compound3 Y Condition4 = "Compound4"

 

y compound4 es su consulta final

sentido?

+0

Suena interesante. Podría intentar esto. – ilitirit

0

Puede comprobar cómo lo hace MS Access. No lo llamaré intuitivo, pero es simple.

+0

Ese es el primer lugar donde miré. No es lo suficientemente intuitivo para mis propósitos, pero podría probar una versión modificada. – ilitirit

1

Si esto es lo suficientemente importante como para pasar mucho tiempo en adelante, me gustaría considerar el uso de diagramas de Venn. La visualización representará los conjuntos de resultados en lugar de los términos de la consulta. Entonces, para demostrar Y, mostraría dos círculos que representan los resultados y resaltará la superposición entre ellos (intersección).

Para demostrar O, mostraría los dos círculos y resaltaría la unión de ambos.

Luego, para mostrar toda la consulta de varias partes, puede mostrar cinco círculos con alguna combinación de unión e intersección, o bien combinar cada paréntesis y luego ocultar el detalle, convirtiendo los resultados en un nuevo círculo para combinar con otros elementos . Mucho drag-and-drop aquí, y cambio de tamaño dinámico de subcláusulas para mayor claridad.

Para hacer esto intuitivo y fácil de usar tomaría bastante trabajo, pero para algunas aplicaciones sería una interfaz realmente poderosa.

+0

Esta respuesta debería ser cada vez más amorosa. Por supuesto, no brinda el ejemplo que se solicitó, pero es una respuesta extremadamente creativa y original, y podría servir como inspiración para una IU realmente innovadora y pionera. ¡Gran respuesta! –

0

Solía ​​trabajar en un sistema donde alineamos lógica booleana similar a la siguiente.

Las columnas de la derecha (Interior) y (Exterior) proporcionan dos niveles de lógica.

 
Variable  Inner  Outer 
Condition1  And 
Condition2    Or 
Condition1  And 
Condition5    And 
Condition4    

Or more optimized... 

Condition4    And 
Condition1    And  
Condition2    Or 
Condition5 
2

TheBat! tiene la mejor interfaz para que personalmente golpeó sucesivamente. (. Se utiliza para ordenar las reglas electrónico)

va:

carpeta de origen no es uno de \\ Google \ Bandeja de entrada

Y

Asunto finaliza con un "nuevo comentario"

O Asunto partido "alguna cadena"

7

Aquí hay una captura de pantalla del prototipo que hice para una aplicación Linux hace unos años. Puede hacer clic en los iconos +/- para agregar filas a un grupo y hacer clic en los botones "agregar nuevo ..." y "eliminar el último ..." para eliminar el grupo que está en el extremo inferior.

Encima de cada grupo había un par de menubuttons que tenían la opción de "Y elementos que coinciden ..."/"O elementos que coinciden ..." (excepto para el primer grupo que variaba levemente), y "CUALQUIER de los siguientes "/" TODO lo siguiente ". Cada fila era consciente de los tipos, por lo que si seleccionaba una cadena para la variable, las condiciones serían "IS", "IS NOT", "BEGINS WITH", y así sucesivamente. Para enteros, obtendría "IS", "MORE than", etc., y para las fechas "ON", "ANTES", "ON or ANTES", y así sucesivamente.

donde se ve la palabra "o" antes de la segunda y tercera fila de la primera plantilla, que habría "o" si "NINGUNO de los siguientes" fue seleccionado, y "y" si "TODO lo siguiente: "fue seleccionado para reforzar la elección y facilitar la" lectura "del diálogo.

No le dejaría hacer ninguna consulta concebible, pero creo que cubrió aproximadamente el 90% de lo que un usuario promedio querría hacer y lo hizo en lo que pensé que era una forma bastante útil.

screenshot of db query form http://www1.clearlight.com/~oakley/dbquery.jpg

0

Es un poco específica a su dominio, pero f-spot tiene una bonita forma de hacer esto. Es un software de administración de fotos, y si hace clic en una de las etiquetas para buscar imágenes por etiqueta, se muestra una barra en la parte superior de los resultados de búsqueda. Luego puede arrastrar y soltar etiquetas en esa barra, y hacer clic con el botón derecho para seleccionar la negación, y puede arrastrar las etiquetas en la barra para agrupar en y y o las cláusulas. No estoy seguro de qué tan bien escalas para toneladas de etiquetas (o condiciones no enumeradas), pero es muy fácil de entender y muy interactivo.

1

Salida cualquiera de las demostraciones en vivo para EasyQuery:

http://devtools.korzh.com/easyquery/livedemos/

Es un software comercial, pero la sección "Condiciones" le permite añadir condiciones individuales o grupos de condiciones, que elimina gran parte de la complejidad de cláusulas con múltiples AND y/o OR. Está muy bien hecho y es fácil de usar.

(No estoy afiliado con EasyQuery, simplemente impresionados con su generador de consultas.)

EasyQuery screenshot

Cuestiones relacionadas