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:
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.