У кого-нибудь есть пример пользовательского интерфейса для создания предложения SQL Where? - PullRequest
5 голосов
/ 23 сентября 2008

У меня проблемы с попыткой отобразить вложенные условия на интуитивно понятный интерфейс.

например. Как бы вы представили ((Условие1 И Условие2) ИЛИ (Условие1 И Условие5)) И Условие4

Ответы [ 11 ]

7 голосов
/ 23 сентября 2008

Вот скриншот прототипа, который я сделал для приложения linux несколько лет назад. Вы можете щелкнуть значки +/-, чтобы добавить строки в группу, и нажать кнопки «добавить новый ...» и «удалить последний ...», чтобы удалить самую нижнюю группу.

Над каждой группой было несколько меню, которые имели выбор: «И элементы, которые соответствуют ...» / «ИЛИ элементы, которые соответствуют ...» (за исключением первой группы, которая немного различалась) и «ЛЮБОЙ из следующее "/" ВСЕ из следующего ". Каждая строка была привязана к типу, поэтому, если вы выбрали строку для переменной, условия будут "IS", "IS NOT", "BEGINS WITH" и так далее. Для целых чисел вы получите «IS», «БОЛЬШЕ, ЧЕМ» и т. Д., А для дат «ON», «BEFORE», «ON OR BEFORE» и т. Д.

Если вы видите слово «или» перед вторым и третьим рядом первой группы, это будет «или», если выбрано «ЛЮБОЕ из следующего», и «и», если «ВСЕ из следующего:» был выбран для подтверждения выбора и облегчения «чтения» диалога.

Это не позволило бы вам сделать какой-либо мыслимый запрос, но я думаю, что он охватил около 90% того, что средний пользователь хотел бы сделать, и сделал это так, как я думал, было довольно удобным способом.

screenshot of db query form
(источник: clearlight.com )

3 голосов
/ 23 сентября 2008

Некоторые люди утверждают, что это настолько интуитивно понятно, насколько это возможно.

logic

2 голосов
/ 23 сентября 2008

TheBat! имеет лучший интерфейс, который я лично выбрал. (Используется для правил сортировки почты.)

Идет:

Исходная папка не является папкой \\ Google \ Inbox

И

Тема заканчивается «новым комментарием»

ИЛИ Тема соответствует "некоторой строке"

2 голосов
/ 23 сентября 2008

Если предположить .NET, я бы пошел с DataGridView, чтобы хранить каждое условие и назначать каждому ID по мере его создания и иметь текстовое поле, которое позволяет вам вводить конкретные условия запроса.

Затем вы можете, после того, как все условия записаны, разрешить комбинировать 2 одновременно с И или ИЛИ и затем отобразить результирующий запрос для проверки

Condition1

Condition2

Condition3

Condition4

Condition5

в вашем случае, как только вы добавите каждый из них к своему набору данных и заполните DataGridView, вы будете делать это (я представляю форму с 3 раскрывающимися списками, верхний и нижний с учетом условий или «составов» и среднего раскрывающегося списка только И / ИЛИ:

Условие1 И Условие2 = "Соединение1"

Условие1 И Условие5 = "Соединение2"

Соединение1 ИЛИ Соединение2 = "Соединение3"

Соединение3 И Условие4 = "Соединение4"

и component4 - ваш последний запрос

имеет смысл?

1 голос
/ 21 декабря 2015

Ознакомьтесь с любыми демонстрационными версиями EasyQuery:

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

Это коммерческое программное обеспечение, но раздел «Условия» позволяет добавлять отдельные условия или группы условий, что устраняет большую сложность из предложений с несколькими AND и / или OR. Он очень хорошо сделан и прост в использовании.

(Я не связан с EasyQuery, просто впечатлен их конструктором запросов.)

EasyQuery screenshot

1 голос
/ 23 сентября 2008

Если это достаточно важно, чтобы тратить много времени, я бы подумал об использовании диаграмм Венна. Визуализация будет представлять наборы результатов, а не термины запроса. Таким образом, для демонстрации И вы должны показать два круга, представляющих результаты, и выделить перекрытие между ними (пересечение).

Чтобы продемонстрировать ИЛИ, вы должны показать два круга и выделить объединение обоих.

Затем, чтобы показать весь запрос, состоящий из нескольких частей, вы можете либо показать пять кружков с некоторой комбинацией объединения и пересечения, либо объединить каждую скобку, а затем скрыть детали, превратив результаты в новый круг для объединения с другими элементами. Здесь много перетаскивания и динамическое изменение размеров подпунктов для ясности.

Чтобы сделать это интуитивно понятным и простым в использовании, потребовалось бы немало усилий, но для некоторых приложений это был бы действительно мощный интерфейс.

1 голос
/ 23 сентября 2008

Microsoft SQL Server имеет такой интерфейс, я использовал его в SQL Server 2000, но держу пари, что он тоже в экспрессе 2005, так что вы можете посмотреть, если хотите.

0 голосов
/ 02 октября 2008

Это специфично для своего домена, но f-spot имеет хороший способ сделать это. Это программное обеспечение для управления фотографиями, и если вы щелкнете по одному из тегов, чтобы найти изображения по тегу, в верхней части результатов поиска отобразится панель. Затем вы можете перетащить теги на эту панель и щелкнуть правой кнопкой мыши, чтобы выбрать отрицание, и можете перетаскивать теги вокруг панели для группировки в и и или предложения. Я не уверен, насколько хорошо это масштабируется для тонны тегов (или неперечислимых условий), но это очень просто понять и приятно интерактивно.

0 голосов
/ 23 сентября 2008

Раньше я работал в системе, где мы выравнивали логическую логику, аналогичную приведенной ниже.

Правые столбцы (Внутренний) и (Внешний) обеспечивают два уровня логики.

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

Or more optimized...

Condition4               And
Condition1               And       
Condition2               Or
Condition5
0 голосов
/ 23 сентября 2008

Вы можете проверить, как это делает MS Access. Я не буду называть это интуитивно понятным, но это просто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...