Я недавно работал над этой проблемой. Мое решение состоит в том, чтобы быть более наглядным, использовать слова вместо символов и изменять слова там, где это обеспечивает более читаемый макет. Для иллюстрации представьте выражение фильтра:
Breed == "Spaniel" AND (Age == 2 OR Colour == "White")
Некоторые линейные построители запросов могут написать это:
( And/Or Field Operator Value
[ ] [Breed] [=] [Spaniel]
[1] [AND] [Age] [=] [2]
[1] [OR] [Colour] [=] [White]
Или иерархический может отображать это как:
AND
[Breed] [Is Equal To] [Spaniel]
OR
[Age] [Is Equal To] [Spaniel]
[Colour] [Is Equal To] [White]
Оба из них могут быть читаемы для разработчика, но не настолько читаемы для непрофессионала.
Мое решение больше похоже на:
Show ALL records where
[Breed] [Is Equal To] [Spaniel]
Show ANY records where
[Age] [Is Equal To] [Spaniel]
[Colour] [Is Equal To] [White]
Итак, заимствуя из иерархического подхода, но меняя И и ИЛИ на ВСЕ или ЛЮБОЕ. Это означает, что его легче читать сверху вниз.