Direkt zum Hauptinhalt

Nachschlagefeld für mehrere Tabellen hinzufügen

Ziel​

Ein Feld hinzufügen, das auf einen Datensatz in einer von mehreren Tabellen verweist – einen Kunden, der ein Account oder ein Contact sein kann, oder einen Zahler, der eines von vier Dingen sein kann.

Voraussetzungen​

  • Sie sind mit einer Erstellerrolle (oder als Plattformadministrator) angemeldet.
  • Die Tabelle, der Sie das Feld hinzufügen, ist vorhanden, ebenso mindestens zwei Tabellen, auf die es verweisen können soll.

Schritte​

  1. Öffnen Sie Tabellen, wählen Sie die Umgebung aus und öffnen Sie Ihre Tabelle auf der Registerkarte Felder.
  2. Wählen Sie Neu, und geben Sie dem Feld wie gewohnt einen Anzeigenamen und einen logischen Namen.
  3. Wählen Sie als Datentyp Nachschlagefeld (mehrere Tabellen).
  4. Aktivieren Sie die Tabellen, auf die das Feld verweisen darf. Mindestens zwei. Eine kleine Zahl neben jeder aktivierten Tabelle zeigt die Reihenfolge, in der Sie sie aktiviert haben – in dieser Reihenfolge sieht sie auch der Benutzer, und die Auswahl öffnet sich bei der ersten. Aktivieren Sie die häufigste zuerst.
  5. Wählen Sie Hinzufügen.
  6. Das Feld ist aktiv, sobald es hinzugefügt ist – wie bei jedem Feld existiert seine Spalte sofort.

Was ein Benutzer sieht​

Ein gewöhnliches Nachschlagefeld. Wenn man es auswählt, öffnet sich ein Bereich, an dessen Anfang die aktivierten Tabellen stehen, über den Namen, die sie filtern:

Customer
[ 👤 Ada Lovelace ] ← closed: the record, with its table's icon
─────────────────────────────
[ Account ] [ Contact ] ← open: the tables you ticked, in your order
Ada Lovelace ← …and the matches in whichever is selected
Ada Byron

Zuerst die Tabelle zu wählen ist kein Selbstzweck. „Finde einen Contact namens Ada“ und „finde einen Account namens Ada“ sind zwei verschiedene Suchen über zwei verschiedene Spaltensätze; eine zusammengeführte Ergebnisliste müsste Spalten in Einklang bringen, die einander nicht entsprechen. Wenn zuerst die Tabelle benannt wird, ist alles darunter das Nachschlagefeld, das bereits funktioniert – mit seiner Suche, seinen zweiten Zeilen, seinen Bildern und seinem Raster für die erweiterte Suche.

Die Tabellen stehen innerhalb des Bereichs statt über dem Feld, sodass sie keinen Platz auf dem Formular belegen, solange niemand etwas auswählt. Deshalb zeigt ein ausgewählter Datensatz das Symbol seiner Tabelle neben sich: Wenn die Tabellenauswahl nicht zu sehen ist, verrät das Symbol noch, ob Ada ein Account oder ein Contact ist. Es ist das Symbol, das Sie der Tabelle im Tabellen-Designer gegeben haben – geben Sie Ihren Tabellen also unterschiedliche Symbole, wenn sie sich ein Nachschlagefeld für mehrere Tabellen teilen sollen.

Ein Wechsel der Tabelle löscht die Auswahl, und zwar absichtlich: Die ID eines Contacts ist nicht die eines Accounts.

Was gespeichert wird​

Zwei Dinge in zwei Spalten: die ID des Datensatzes und die Tabelle, in der er liegt. Die zweite sehen Sie, wenn Sie die Tabelle direkt abfragen – es ist der Name Ihrer Spalte mit angehängtem _type, und sie enthält den logischen Namen der Tabelle.

Das ist dieselbe Form, die die Plattform bereits für den Besitzer eines Datensatzes verwendet, und deshalb ist das Feld ein eigener Datentyp und nicht ein Nachschlagefeld mit einer längeren Zielliste.

Der eine echte Kompromiss: kein Fremdschlüssel​

Ein gewöhnliches Nachschlagefeld erhält einen echten Fremdschlüssel in der Datenbank, sodass die Datenbank selbst verhindert, dass der Datensatz, auf den es verweist, unter ihm weggelöscht wird. Ein Nachschlagefeld für mehrere Tabellen kann keinen haben – eine einzelne Spalte kann nicht auf mehrere Tabellen verweisen. Deshalb gilt:

  • Die Plattform prüft weiterhin bei jedem Speichern, ob der ausgewählte Datensatz existiert.
  • Wenn jemand diesen Datensatz aber danach löscht, hält ihn nichts auf. Das Feld zeigt dann den rohen Verweis statt eines Namens – dasselbe, was ein gewöhnliches Nachschlagefeld anzeigt, wenn sein Ziel verschwunden ist: sichtbar, nicht stillschweigend.
  • Das Löschen einer ganzen Tabelle bleibt blockiert, solange ein Nachschlagefeld für mehrere Tabellen sie als Ziel auflistet – genau wie bei einem gewöhnlichen Nachschlagefeld.

Wenn Sie nur eine Tabelle brauchen, verwenden Sie ein einfaches Nachschlagefeld. Dann erhalten Sie den Fremdschlüssel, und der Designer weist Sie darauf hin, statt Sie versehentlich eine schwächere Spalte bauen zu lassen.

Registerkarten „Verknüpft“ funktionieren weiterhin​

Jede aktivierte Tabelle erhält ihre eigene Beziehung, sodass ein Datensatz in jeder davon eine Registerkarte Verknüpft anbietet, die die Datensätze auflistet, die auf ihn verweisen. Ein Account-Formular zeigt seine Kunden, ein Contact-Formular ebenso. Zusätzlich einzurichten ist nichts.

Der Besitzer ist ein solches Feld​

Der Besitzer eines Datensatzes ist ein Verweis auf mehrere Tabellen – eine Person oder ein Team – und wird auf jedem Formular, auf dem das Feld „Besitzer“ platziert ist, mit genau diesem Steuerelement angezeigt. Dort einen neuen Besitzer auszuwählen bewirkt dasselbe wie der Befehl Zuweisen und durchläuft dieselben Prüfungen; siehe Besitzer eines Datensatzes ändern.

Fehlerbehebung​

  • „Tick at least two tables.“ – Mit nur einem Ziel ist das ein gewöhnliches Nachschlagefeld, das seinen Fremdschlüssel umsonst aufgegeben hat. Wählen Sie stattdessen Nachschlagefeld.
  • Die Tabellen sind ausgegraut, wenn ich ein vorhandenes Feld öffne. – Die Zielliste ist festgelegt, sobald das Feld existiert, aus demselben Grund wie das einzelne Ziel eines Nachschlagefelds: Datensätze enthalten bereits Verweise, die gegen diese Liste geprüft wurden, und das Entfernen einer Tabelle würde manche davon auf etwas zeigen lassen, das das Feld angeblich nicht erreichen kann. Löschen Sie das Feld und fügen Sie es erneut hinzu.
  • Die Auswahl zeigt logische Namen statt Tabellennamen. – Die Tabellenliste der Umgebung ist noch nicht geladen. Das löst sich einen Moment später; wenn nicht, öffnen Sie das Formular erneut.
  • Das Feld zeigt etwas wie contact:9f2c… statt eines Namens. – Der Datensatz, auf den es verweist, wurde gelöscht. Wählen Sie einen anderen aus.
  • Eine gewünschte Tabelle steht nicht in der Liste. – Die eigene Tabelle des Felds ist ausgeschlossen, genau wie bei einem gewöhnlichen Nachschlagefeld. Alle anderen Tabellen der Umgebung werden angeboten.

Verwandte Szenarien​