Слово предостережения. Эти типы конструкторов обобщенных выражений обычно считаются отличными решениями для множества пользовательских проблем. Мышление имеет тенденцию идти по этим направлениям:
- Пользователь хочет все эти разные отчеты
- Мы никак не можем предоставить им доступ к SQL (даже если бы они могли это понять)
- У нас нет времени, чтобы написать все эти пользовательские отчеты
- Поэтому я предоставлю им простой способ написания запросов без необходимости знать конкретный синтаксис, таблицы и поля.
Это не обязательно плохая идея, но мы обнаружили в моей компании, что неопытные пользователи испытывают удивительные трудности с пониманием и построением выражений, более сложных, чем группа ANDS или группа ORS. Нам, программистам, это трудно понять, поскольку большинство из нас, вероятно, имели интуитивное понимание логической логики еще до того, как научились программировать.
Я бы порекомендовал вам не пытаться дать им полную гибкость при создании любого выражения, которое они хотят, и вместо этого вы собрали пользовательский интерфейс, который позволяет программисту определять что-то более сложное в бэкэнде, но дает пользователю простой выбор фронт-энд. Это легче сказать, чем сделать, очевидно.
Помните - иногда трудность для конечных пользователей заключается не в том, что они не знают правильный синтаксис для выражения своей идеи. Чаще всего это потому, что они даже не знают, как сформулировать свои мысли однозначным образом. даже если им был предоставлен простой способ сделать это.
ПРИМЕЧАНИЕ: я не говорю, что конечные пользователи всегда дебилы - просто их ум может работать не так, как мы, сумасшедшие разработчики.