Links-Felder (n:m)
Ein Links-Feld verbindet zwei Tabellen n:m – jede Zeile kann auf mehrere Zeilen der Zielseite verweisen, und umgekehrt. Technisch steht dahinter eine Zwischentabelle (Junction-Tabelle) mit je einer Spalte pro Seite.
Beim Anlegen wählst du:
- die Zieltabelle,
- den Spaltennamen auf der Zielseite (die Gegenrichtung – ein Links-Feld entsteht immer als symmetrisches Paar, eine Spalte auf jeder Seite der Beziehung),
- und den Umgang mit der Junction-Tabelle:
- Neu anlegen – IllusionDB erstellt die Zwischentabelle selbst.
- Bestehende verwenden – du wählst eine schon vorhandene Zwischentabelle samt ihrer beiden Fremdschlüssel-Spalten aus.
Der Wert eines Links-Felds ist immer eine Liste von verknüpften Zeilen. In der Tabellenansicht zeigt die Zelle dafür ein Badge mit der Anzahl (“3 Einträge”, auch bei null) – ein Klick öffnet ein Fenster mit der vollständigen Liste: je Zeile das Anzeigefeld der verknüpften Zeile, ein Stift-Symbol zum Öffnen des verknüpften Datensatzes und ein “×” zum Entfernen der Verknüpfung, plus eine Suche zum Hinzufügen weiterer Verknüpfungen. Dasselbe Interface erscheint identisch im Bearbeiten-Formular eines einzelnen Datensatzes – Grid und Formular verhalten sich hier bewusst gleich (siehe auch Kind-Datensätze, die dasselbe Badge-Prinzip nutzen, dort aber rein lesend ohne Hinzufügen/Entfernen).
Ein Links-Feld kann – genau wie ein Fremdschlüsselfeld – auch auf die eigene Tabelle zeigen, für n:m-Beziehungen zwischen Zeilen derselben Tabelle.
Geht es dagegen um eine reine 1:n-Fremdschlüsselbeziehung (keine Zwischentabelle) und sollen von der “Eltern”-Seite aus alle zugehörigen Kind-Zeilen angezeigt werden, siehe Kind-Datensätze.
Verbindung nachträglich ändern -- bewusst nicht möglich
Anders als bei Lookup-, Rollup- und Kind-Datensätze-Feldern lässt sich bei einem Links-Feld die eigentliche Verbindung (Zieltabelle, Gegenseite, Junction-Tabelle) über “Feld bearbeiten” nicht nachträglich ändern – das ist eine bewusste Design-Entscheidung: eine nachträgliche Umverdrahtung könnte die bereits gespeicherten Daten in der Junction-Tabelle korrumpieren. Soll ein Links-Feld auf eine andere Zieltabelle oder Zwischentabelle zeigen, bleibt nur der Weg über Löschen und Neuanlegen.
Der Spaltenname eines Links-Felds lässt sich dagegen ganz normal wie bei jedem anderen Feldtyp über dasselbe “Feld bearbeiten”-Modal überschreiben.