it-swarm.com.de

Wie kann ich den Zweck eines komplexen Benutzeroberflächenelements deutlicher machen?

Ich bin der Autor von SQL Fiddle , einer Online-Umgebung zum Testen und Teilen von Datenbankproblemen. Die Zielgruppe für meine Website sind technisch ziemlich anspruchsvolle Benutzer (im Grunde genommen Datenbankprogrammierer). Eine der Funktionen, die ich kürzlich implementiert habe, hat jedoch einige Verwirrung gestiftet, und ich bin mir nicht sicher, wie ich das gesamte Konzept klarer machen kann.

In dieser StackOverflow-Antwort finden Sie ein perfektes Beispiel für dieses spezielle Problem:

warum ist die Summe von fünf 1 = 4

Wie ich dort erwähne, besteht das Problem darin, dass zwei konkurrierende Funktionen im Spiel sind, wenn Sie Abfragen in meinem linken Bereich ausführen. Eine Funktion ist die Aufteilung der einzelnen ausgeführten Anweisungen, damit ich die Ergebnisse jeder Anweisung im folgenden Abschnitt abrufen und anzeigen kann. Die andere Funktion ist, dass ich manchmal Anweisungen zusammen als "Stapel" ausführen muss, damit Dinge wie Variablen (wie im obigen Beispiel) zusammen ausgeführt werden.

Die aktuelle Lösung für beide Funktionen besteht darin, Ihren "Query Terminator" zu ändern. Dies ist ein Sonderzeichen (oder eine Zeichenkombination), mit dem das Ende eines Abfragebatches definiert wird. Ich erlaube Benutzern anzugeben, welchen Abfrage-Terminator sie verwenden möchten, indem sie ihn aus einer Dropdown-Schaltfläche auswählen (siehe die Schaltfläche [;] auf die Site ). Dies funktioniert, aber nur wenige Menschen scheinen zu verstehen, wie diese Schaltfläche verwendet wird, um das Verhalten ihrer Abfrageausführung zu ändern.

Ich habe diese Schaltfläche so erstellt, wie ich es getan habe, weil ich nicht viel Platz auf dem Bildschirm hatte, um damit zu arbeiten, und dies ist eine nicht oft benötigte Funktion. Ich muss jedoch deutlich mehr tun, um deutlich zu machen, wie man das benutzt. Meine sehr intelligenten Benutzer sind verblüfft über die Fehlermeldungen oder seltsamen Verhaltensweisen, die mit dieser Funktion behoben werden sollten.

Einige Dinge, an die ich gedacht habe:

  • Ich könnte die tatsächlichen Abfrageanweisungen anzeigen, die für jede Ergebnismenge ausgeführt werden. Dies würde deutlich machen, was genau für die Erstellung der einzelnen Elemente verwendet wurde, und die Benutzer dazu veranlassen, das Problem als ein Problem der Beendigung von Abfragen zu erkennen.

  • Ich könnte einen FAQ-/Hilfeabschnitt schreiben, der diese Funktion (und andere) behandelt, aber ich habe derzeit nicht wirklich so etwas und würde es vorziehen, einen Mechanismus zu finden, der intuitiv genug ist, damit das Lesen des Hilfehandbuchs nicht funktioniert. ' nicht notwendig sein.

  • Ich könnte einen bootstrap Tooltip verwenden, der beim Bewegen des Mauszeigers über die Schaltfläche angezeigt wird, die versucht, dies kurz zu erklären.

11
Jake Feasel

Ich denke, zwei andere Ansätze könnten helfen:

während der Eingabe können Sie in einem Statusbereich rechts neben Ihrem Abfragebegrenzer "2 Abfragen" anzeigen, wenn der erste Begrenzer eingegeben wird, und dann "X Abfragen". Es kann hilfreich sein, wenn der Status irgendwie mit der Schaltfläche [;] verknüpft ist und dem Benutzer mitteilt, dass diese Schaltfläche die Segmentierung des Codes ändert

das zweite Element ist, dass im Ergebnisbereich anstelle von "TASK_PERFORMED" "Letztes Abfrageergebnis (Ergebnisse von X vorherigen Abfragen anzeigen)" gedruckt wird. Der Text in Klammern ist eine Schaltfläche, die in einen Modus wechselt, in dem Sie jedes Ergebnis anzeigen (und möglicherweise sogar) jede zugehörige Abfrage)

2
Mathieu

Es scheint, dass Ihr Begriff "Query Terminator" funktional dem Befehl MySQL DELIMITER entspricht (der fast immer genau aus dem von Ihnen angegebenen Grund verwendet wird beim Schreiben gespeicherter Prozeduren ).

Das erste, was mir in den Sinn kommt, ist, es als "Trennzeichen" zu bezeichnen, da dies ein bekannter Begriff ist und einen größeren Teil Ihres hochgradigen SQL erfassen sollte -Literat Publikum. Obwohl ich nicht denke, dass 'Abfrage-Terminator' überhaupt irreführend ist, kann es im Kontext von SQL unerwartet sein.

Außerdem scheint die Schaltfläche nichts zu tun (zumindest bis der Code ausgeführt wird). Nach Ihrer Schlussfolgerung, dass es einen zugrunde liegenden DELIMITER Befehl ausführt, was halten Sie von Einfügen a DELIMITER x an der Cursorposition in das Codefenster selbst koppeln oder um ausgewählten Text wickeln? Ich glaube, dass die meisten Benutzer mit SQL-Kenntnissen nach einem einzigen Klick verstehen würden, was die Schaltfläche bewirkt.

1
msanford