Bewährte Methoden für Datenbankschemata bei der Generierung von DDL- und SQL-Abfragen

Der Scriptschritt „SQL-Abfrage in natürlicher Sprache ausführen“ und die Funktion „GetTableDDL“ generieren eine Datendefinitionssprache (Data Definition Language, DDL), die das Schema der angegebenen Tabellenauftreten zusammenfasst. Die zugrundeliegende Logik basiert für den größten Teil des Datenbankschemas auf den Feldeinstellungen und dem Beziehungsdiagramm, kann jedoch auch Feldanmerkungen enthalten, die Sie im Dialogfeld „Datenbank verwalten“ als zusätzliche Informationen eingeben.

Wenn ein Datenbankschema an ein KI-Modell gesendet wird, um SQL-Abfragen zu generieren, hilft die Befolgung dieser bewährten Methoden dabei, die Fähigkeit des Modells zur Generierung nützlicher SQL-Anweisungen zu verbessern.

Alphanumerische Tabellen- und Feldnamen verwenden

Feldnamen sollten möglichst dem SQL-92-Standard entsprechen. Verwenden Sie grundsätzlich alphanumerische Zeichen; verwenden Sie keine Sonderzeichen, mit Ausnahme des Unterstrichs (_). Vermeiden Sie nach Möglichkeit Leerzeichen, aber Sie können sie bei Bedarf verwenden (FileMaker verarbeitet Tabellen- und Feldnamen mit Leerzeichen bei der Kommunikation mit einem KI-Modell korrekt).

Primärschlüssel- und Fremdschlüsselfelder verwenden

Primärschlüssel- und Fremdschlüsselfelder in einer Beziehung müssen denselben Datentyp haben – Zahl, Text oder sogar Datum oder Zeitstempel, wenn es dafür einen Grund gibt.

Primärschlüsselfeld

Jedes Feld mit einem eindeutigen Wert kann als Primärschlüsselfeld verwendet werden. Die beste Vorgehensweise ist jedoch, dieselben Kriterien zu verwenden, die FileMaker zur automatischen Erkennung eines Primärschlüsselfelds verwendet.

Um erkannt zu werden, muss ein Primärschlüsselfeld entweder das Standard-Primärschlüsselfeld (oder eine Kopie davon) sein oder eines der folgenden Kriterien erfüllen:

  • Das Feld verwendet eine automatisch eingegebene fortlaufende Nummer und die folgenden Optionen sind ausgewählt:

    • für die automatische Eingabe Keine Veränderung des Werts bei der Dateneingabe

    • für die Überprüfung Eindeutiger Wert

  • Das Feld verwendet eine Formel für die automatische Eingabe, die die Funktion Hole ( UUID ) oder Hole ( UUIDNummer ) beinhaltet und die Option zur automatischen Eingabe Keine Veränderung des Werts bei der Dateneingabe ist ausgewählt.

  • Das Feld ist ein gespeichertes Formelfeld, das die Funktion „Hole ( UUID )“ oder „Hole ( UUIDNummer )“ beinhaltet.

  • Das Feld verwendet eine automatisch eingegebene fortlaufende Nummer.

Weitere Informationen finden Sie unter Definieren von automatischer Dateneingabe, Definieren der Feldüberprüfung und Definieren von Optionen zur Feldindizierung.

Fremdschlüsselfeld

Ein Fremdschlüsselfeld kann denselben Namen wie das entsprechende Primärschlüsselfeld in einer Bezugstabelle haben, muss dies aber nicht. Beispielsweise stellt ein Fremdschlüsselfeld mit dem Namen fk_Kontakte in der Tabelle „Adressen“ eine Beziehung von der Tabelle „Kontakte“ zur Tabelle „Adressen“ dar. Am besten verwenden Sie einen Namen, der für Sie Sinn ergibt, da dieser auch für ein KI-Modell hilfreich ist.

Um den Zweck des Felds zu verdeutlichen und die Beziehung zu einer anderen Tabelle anzugeben, können Sie das Feld in einer Feldanmerkung näher beschreiben (siehe unten). Fügen Sie beispielsweise Folgendes als Anmerkung in das Feld „Adressen::fk_Kontakte“ ein: „Fremdschlüssel für n:1-Beziehung mit der Tabelle ‚Kontakte‘.“

Hinweis  Ein Fremdschlüssel und seine Beziehung zu einer Bezugstabelle werden nur dann in die DDL aufgenommen, wenn beide Tabellenauftreten in der Beziehung angegeben sind.

Feldanmerkungen hinzufügen

Feldanmerkungen, die Sie im Dialogfeld „Datenbank verwalten“ eingeben, werden in die DDL aufgenommen. Um die Fähigkeit des Modells zu verbessern, nützliche SQL-Anweisungen auf der Grundlage der DDL zu generieren, können Sie eine Anmerkung verwenden, um den Zweck des Feldes zu erläutern – beispielsweise wenn es sich bei einem Feld um einen Fremdschlüssel handelt, der einen Datensatz in einer Bezugstabelle identifiziert, oder wenn der Name des Felds möglicherweise nicht allgemein verständlich ist. Auch wenn FileMaker ein Primärschlüsselfeld erkennt und in der DDL als Primärschlüssel kennzeichnet, empfiehlt es sich, es in der Feldanmerkung als solchen zu kennzeichnen.

Weitere Informationen zum Hinzufügen von Feldanmerkungen finden Sie unter Definieren von erweiterten Feldoptionen.

Feldanmerkungen angeben, um die enthaltenen Felder einzuschränken

Anstatt alle Felder einer Tabelle in die DDL aufzunehmen, können Sie nur die relevanten Felder angeben, wodurch weniger überflüssige Informationen an das Modell gesendet werden, die die Qualität der Antwort beeinträchtigen könnten. Fügen Sie dazu Feldanmerkungen zu den Feldern hinzu, die Sie aufnehmen möchten. Nachdem Sie mindestens eine Feldanmerkung in einer Tabelle hinzugefügt haben, werden nur Felder mit Anmerkungen in die DDL aufgenommen; Felder ohne Anmerkungen werden ausgeschlossen.

Wenn beispielsweise die Tabelle „Produkte“ diese Felder enthält, das Feld „Status“ jedoch keine Anmerkung aufweist:

Feldname Anmerkung

ProduktID

Primärschlüssel, der ein Produkt eindeutig identifiziert

Produktname

Beschreibender Name des Produkts

Preis

Preis des Produkts in USD

Status

(keine Anmerkung)

Dann lautet die DDL für diese Tabelle:

Kopieren
CREATE TABLE "Produkte" (
"ProduktID" int, /*Primärschlüssel, der ein Produkt eindeutig identifiziert*/
"ProduktName" varchar(255), /*Beschreibender Name des Produkts*/
"Preis" int, /*Preis des Produkts in USD*/
PRIMARY KEY (ProduktID)
);

Beachten Sie, dass nur die drei Felder mit Anmerkungen enthalten sind.

Felder mit demselben Namen in mehreren Tabellen unterscheiden

Manchmal kann eine Datenbank Felder mit demselben Namen in mehreren Tabellen enthalten. Beispielsweise speichert ein Feld „Foto“ in der Tabelle „Kontakte“ die Bilder von Kunden, während ein anderes Feld „Foto“ in der Tabelle „Bestellungen“ die Bilder von Bestellbelegen speichert. Um sicherzustellen, dass ein KI-Modell die unterschiedlichen Zwecke dieser Felder unterscheiden kann, fügen Sie zur Klarstellung Feldanmerkungen hinzu. Fügen Sie beispielsweise „Foto des Kunden“ als Anmerkung für das Feld „Kontakte::Foto“ und „Foto der Bestellbelege“ als Anmerkung für das Feld „Bestellungen::Foto“ hinzu.

Angeben, wann die Groß-/Kleinschreibung beachtet werden muss

SQL-Abfragen unterscheiden zwischen Groß- und Kleinschreibung, sodass die Ergebnisse je nach Groß-/Kleinschreibung des Textes unterschiedlich ausfallen können. Beispielsweise speichert ein Feld „Tags“ in der Tabelle „Produkte“ die Tags jedes Produkts, alle in Großbuchstaben. Um in diesem Fall unerwartete Abfrageergebnisse zu vermeiden, fügen Sie „Tags des Produkts, in Großbuchstaben“ als Anmerkung zum Feld „Produkte::Tags“ hinzu.

Die gültigen Feldwerte angeben

Für Felder, die eigene Wertelisten verwenden, um gültige Feldwerte anzugeben, empfiehlt es sich, die gültigen Werte in einer Feldanmerkung anzugeben, damit das KI-Modell die beste SQL-Abfrage generieren kann. Fügen Sie beispielsweise Folgendes als Anmerkung für das Feld „Kontakte::Titel“ hinzu: „Position, gültige Werte sind Chirurg, Arzt, Zahnarzt, Krankenschwester und Apotheker“.

Statistikfelder nicht abfragen

Der Wert eines Statistikfelds in einer FileMaker-Datenbank hängt von den Datensätzen in der aktuellen Ergebnismenge ab, sodass eine SQL-Abfrage in einigen Fällen möglicherweise ein falsches Ergebnis zurückgibt. Stattdessen sollten Sie Feldanmerkungen für Statistikfelder weglassen, damit diese aus der DDL ausgeschlossen werden. SQL ist leistungsfähig genug, um die Aufgaben von Statistikfeldern auszuführen, ohne sie in die DDL aufzunehmen.

Hinweise 

So bewahren Sie die Kompatibilität mit eigenen Apps, die Feldkommentare anstelle von Feldanmerkungen verwenden:

  • Wenn in einer Tabelle keine Feldanmerkungen angegeben sind, werden alle Felder dieser Tabelle in die DDL aufgenommen. Feldkommentare, sofern vorhanden, werden als Beschreibungen in die DDL aufgenommen.

  • Wenn eine Feldanmerkung leer ist und der Feldkommentar mit dem speziellen Tag [LLM] beginnt, wird der Kommentartext (ohne das Tag [LLM]) in der DDL so verwendet, als wäre es eine Anmerkung.