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 die Feldkommentare 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 den Feldkommentaren näher beschreiben (siehe unten). Fügen Sie beispielsweise Folgendes als Kommentar in das Feld „Adressen::fk_Kontakte“ ein: „[LLM] 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.

Feldkommentare hinzufügen

Feldkommentare, die Sie im Dialogfeld „Datenbank verwalten“ eingeben, werden in die DDL aufgenommen. Um die Fähigkeit des Modells zu verbessern, anhand der DDL nützliche SQL-Anweisungen zu generieren, können Sie den Kommentar verwenden, um den Zweck des Felds zu erläutern. Dies ist beispielsweise der Fall, wenn ein Feld ein Fremdschlüssel ist, der einen Datensatz in einer Bezugstabelle identifiziert, oder wenn der Name des Feldes 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 im Feldkommentar als solchen zu kennzeichnen.

Weitere Informationen finden Sie unter Definieren und Ändern von Feldern.

Fügen Sie das Tag [LLM] hinzu, 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 das spezielle Tag [LLM] am Anfang des Feldkommentars ein und fügen Sie anschließend gegebenenfalls einen beschreibenden Kommentar hinzu. Alle anderen Felder in der Tabelle, deren Kommentar nicht mit dem Tag [LLM] beginnt, werden aus der DDL ausgeschlossen.

Wenn die Tabelle „Produkte“ beispielsweise diese Felder enthält, der Kommentar im Feld „Status“ jedoch nicht mit dem Tag [LLM] beginnt:

Feldname

Kommentar

ProduktID

[LLM] Primärschlüssel, der ein Produkt eindeutig identifiziert

Produktname

[LLM] Beschreibender Name des Produkts

Preis

[LLM] Preis des Produkts in USD

Status

Status des Produkts im Inventar. Werte sind auf Lager, Bestellt

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 dem Tag [LLM] enthalten sind und das Tag [LLM] selbst weggelassen wird.

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 Feldkommentare hinzu. Fügen Sie beispielsweise „[LLM] Foto des Kunden“ zum Kommentarfeld „Kontakte::Foto“ und „[LLM] Foto der Bestellbelege“ zum Kommentarfeld „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 „[LLM] Tags des Produkts, in Großbuchstaben“ als Kommentar 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 einem Feldkommentar anzugeben, damit das KI-Modell die beste SQL-Abfrage generieren kann. Fügen Sie beispielsweise Folgendes als Feldkommentar für das Feld „Kontakte::Titel“ hinzu: „[LLM] 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. Verwenden Sie stattdessen das Tag [LLM] in Feldkommentaren, damit Statistikfelder ausgeschlossen werden. SQL ist leistungsfähig genug, um die Aufgaben von Statistikfeldern auszuführen, ohne sie in die DDL aufzunehmen.