SQLite Hub 2.1.0: Virtual und Shadow Tables jetzt visuell sichtbar
SQLite Hub 2.1.0 kennzeichnet Virtual und Shadow Tables visuell und schützt interne Shadow Tables im Row Editor vor Änderungen
Dieser Artikel hat eine Lesedauer von 3 minutes Minuten.

SQLite Hub 2.1.0 kennzeichnet Virtual und Shadow Tables jetzt direkt in der Oberfläche. Der Auslöser war simpel: Mich hat bei anderen SQLite-Managern genervt, dass dieser Unterschied häufig unsichtbar bleibt.
Warum ich Virtual und Shadow Tables sichtbar machen wollte
Wer eine SQLite-Datenbank öffnet, sieht in vielen Datenbankmanagern zunächst eine Liste von Tabellen. Das funktioniert gut, solange jede Tabelle auch tatsächlich dieselbe Rolle innerhalb der Datenbank spielt.
In der Praxis ist das nicht immer der Fall.
Gerade bei Datenbanken mit FTS5 können neben einer Virtual Table weitere Shadow Tables auftauchen. Viele SQLite-Manager stellen diese Einträge jedoch praktisch genauso dar wie normale Anwendungstabellen.
Mich hat das schon länger gestört.
Nicht, weil die Tabellen nicht sichtbar wären. Das eigentliche Problem ist, dass ihre Rolle in der Oberfläche kaum erkennbar ist. Wer eine fremde Datenbank untersucht oder nach längerer Zeit in ein eigenes Projekt zurückkehrt, muss sich den Zusammenhang selbst erschließen.
Ab SQLite Hub 2.1.0 wird dieser Unterschied deshalb visuell dargestellt.
Kennzeichnung direkt in der Structure-Ansicht
In der Structure-Ansicht erkennt SQLite Hub nun, ob es sich bei einem Eintrag um eine Virtual Table oder eine Shadow Table handelt.

Die Information wird nicht in einem separaten Diagnosefenster versteckt. Sie erscheint dort, wo ich sie selbst beim Arbeiten brauche: direkt in der Datenbankstruktur.
Das war für mich der wichtigste Punkt an der Umsetzung.
Eine Datenbankstruktur ist nicht nur eine Liste von Namen. Sie sollte möglichst schnell vermitteln, welche Elemente zusammengehören und welche Rolle sie innerhalb des Schemas spielen.
Gerade bei einer FTS5-Konfiguration kann das einen deutlichen Unterschied machen. Statt mehrere ähnlich benannte Tabellen manuell einordnen zu müssen, zeigt SQLite Hub den Typ direkt in der Oberfläche.
Wer tiefer in das Thema einsteigen möchte, findet in meinem Artikel SQLite FTS5: Volltextsuche mit CREATE VIRTUAL TABLE verstehen eine ausführlichere Erklärung zu Virtual Tables, Shadow Tables und FTS5.
Auch die Data-Ansicht zeigt den Unterschied
Die Kennzeichnung beschränkt sich nicht auf die Structure-Ansicht.
Auch in der Data-Ansicht berücksichtigt SQLite Hub ab Version 2.1.0, ob gerade mit einer normalen Tabelle, einer Virtual Table oder einer Shadow Table gearbeitet wird.
Das ist für mich vor allem eine Frage der Konsistenz.
Es wäre wenig hilfreich, den Unterschied an einer Stelle sichtbar zu machen und ihn beim eigentlichen Arbeiten mit den Daten wieder zu verlieren. Deshalb soll die Information dort erhalten bleiben, wo Nutzer Daten durchsuchen und Datensätze öffnen.
Shadow Tables sind im Row Editor read-only
Eine weitere Änderung betrifft den Row Editor.
Wird eine erkannte Shadow Table geöffnet, ist der Row Editor in SQLite Hub read-only. Die Daten können angesehen werden, aber nicht über die normale Bearbeitungsoberfläche verändert werden.

Das ist eine bewusste Entscheidung.
Ich wollte Shadow Tables nicht komplett verstecken. Gerade bei Analyse, Debugging oder beim Lernen über SQLite kann es interessant sein, ihre Inhalte überhaupt sehen zu können.
Gleichzeitig wollte ich nicht so tun, als wären sie gewöhnliche Anwendungstabellen, die bedenkenlos mit einem visuellen Row Editor bearbeitet werden sollten.
Deshalb gilt ab Version 2.1.0:
Normale Tabelle -> Row Editor kann bearbeiten
Shadow Table -> Row Editor ist read-only
Die Oberfläche bleibt damit transparent, setzt aber eine klare Grenze bei visuellen Schreiboperationen.
Sichtbarkeit statt zusätzlicher Abstraktion
Bei SQLite Hub versuche ich generell, Datenbankfunktionen nicht hinter unnötigen Abstraktionen zu verstecken.
Das gilt für SQL ebenso wie für Schemaänderungen oder interne Strukturen. Nutzer sollen sehen können, womit sie gerade arbeiten.
Die neue Darstellung von Virtual und Shadow Tables folgt demselben Gedanken.
Ich wollte keine eigene Spezialansicht bauen, die man erst öffnen muss. Ebenso wenig wollte ich Shadow Tables standardmäßig ausblenden. Beides hätte aus meiner Sicht neue Fragen geschaffen.
Stattdessen zeigt SQLite Hub die vorhandene Struktur und ergänzt den Kontext direkt in der Oberfläche.
FAQ
Was ist neu in SQLite Hub 2.1.0?
SQLite Hub kennzeichnet Virtual Tables und Shadow Tables jetzt visuell in den relevanten Datenbankansichten.
Kann ich Shadow Tables im Row Editor bearbeiten?
Nein. Der Row Editor ist bei erkannten Shadow Tables bewusst schreibgeschützt.
Wo kann ich mehr über Virtual Tables, Shadow Tables und FTS5 lernen?
Ein eigener Artikel erklärt die Zusammenhänge zwischen SQLite Virtual Tables, Shadow Tables und FTS5 ausführlicher.


