Migliori metodologie operative per lo schema del database nella generazione di query DDL ed SQL
L'istruzione di script Esegui ricerca SQL per linguaggio naturale e la funzione GetTableDDL generano un DDL (Data Definition Language) che riassume lo schema del database delle ricorrenze di tabella specificate. La logica sottostante si basa sulle impostazioni dei campi e sul grafico delle relazioni per la maggior parte dello schema del database, ma può anche includere annotazioni dei campi che vengono inserite nella finestra di dialogo Gestisci database come informazioni aggiuntive.
Quando lo schema del database viene inviato a un modello di AI per generare query SQL, seguire queste metodologie operative aiuta a migliorare la capacità del modello di generare istruzioni SQL utili.
Utilizzare i nomi alfanumerici di tabelle e campi
L'ideale è che i nomi dei campi siano conformi allo standard SQL-92. In generale, utilizzare caratteri alfanumerici; non usare caratteri speciali, tranne il trattino basso (_). Cercare di non utilizzare spazi, ma se necessario possono essere impiegati (nel comunicare con un modello di AI, FileMaker gestisce correttamente i nomi di tabelle e campi contenenti spazi).
Utilizzare i campi chiave primaria e chiave esterna
I campi chiave primaria e chiave esterna in una relazione devono avere lo stesso tipo di dati: numero, testo o anche data o data e ora, se c'è un motivo per farlo.
Campo chiave primaria
Qualsiasi campo con un valore univoco può essere utilizzato come campo chiave primaria. Tuttavia, la metodologia migliore consiste nell'utilizzare gli stessi criteri impiegati da FileMaker per rilevare automaticamente un campo chiave primaria.
Per essere rilevato, un campo chiave primaria deve essere il campo ChiavePrimaria predefinito (o una copia di esso) oppure deve soddisfare uno dei seguenti criteri:
-
utilizzare un numero di serie a immissione automatica e aver selezionato le seguenti opzioni:
-
per l'immissione automatica, Impedisci modifica valore durante immissione dati
-
per la convalida, Valore unico
-
-
utilizzare un calcolo a immissione automatica che includa la funzione Get ( IDUU ) o Get ( NumeroIDUU ) e aver selezionato l'opzione di immissione automatica Impedisci modifica valore durante immissione dati
-
è un campo Calcolo memorizzato che include la funzione Get ( IDUU ) o Get ( NumeroIDUU )
-
utilizzare un numero di serie a immissione automatica
Vedere Definizione dell'immissione automatica dei dati, Definizione della verifica dei campi e Definizione delle opzioni di indicizzazione per i campi.
Campo chiave esterna
Un campo chiave esterna può avere lo stesso nome del campo chiave primaria corrispondente in una tabella correlata, ma non è indispensabile. Ad esempio, un campo chiave esterna fk_Contatti nella tabella Indirizzi rappresenta una relazione dalla tabella Contatti alla tabella Indirizzi. La metodologia migliore consiste nell'utilizzare un nome significativo, perché sarà anche un nome utile per un modello di AI.
Per rendere più chiaro lo scopo del campo e per specificare la relazione con un'altra tabella, è possibile descrivere ulteriormente il campo in un'apposita annotazione (vedere di seguito). Ad esempio, aggiungere quanto segue come annotazione per il campo Indirizzi::fk_Contatti: "Chiave esterna per la relazione uno a molti con la tabella Contatti".
Nota Una chiave esterna e la sua relazione a una tabella correlata sono incluse nel DDL solo se sono specificate entrambe le ricorrenze di tabella nella relazione.
Aggiunta di annotazioni campo
Le annotazioni campo che si inseriscono nella finestra di dialogo Gestisci database sono incluse nel DDL. Per migliorare la capacità del modello di generare istruzioni SQL utili basate sul DDL, è possibile utilizzare un'annotazione per spiegare lo scopo del campo, ad esempio quando un campo è una chiave esterna che identifica un record in una tabella correlata o quando il nome del campo potrebbe non essere comunemente compreso. Per un campo chiave primaria, anche se FileMaker lo rileva e indica nel DDL che si tratta di una chiave primaria, è comunque bene identificarlo come tale nell'annotazione campo.
Per ulteriori informazioni sull'aggiunta di annotazioni campo, vedere Definizione delle opzioni campo avanzate.
Specificare le annotazioni campo per limitare i campi inclusi
Piuttosto che includere tutti i campi di una tabella nel DDL, è possibile specificare solo quelli che contano, riducendo le informazioni estranee inviate al modello che possono peggiorare la qualità della risposta. Per farlo, aggiungere le annotazioni campo ai campi che si desidera includere. Dopo aver aggiunto almeno un'annotazione campo in una tabella, solo i campi con annotazioni sono inclusi nel DDL; i campi senza annotazioni sono esclusi.
Ad esempio, se la tabella Prodotti include questi campi ma il campo Stato non ha un'annotazione:
| Nome del campo | Annotazione |
|---|---|
|
IDProdotto |
Chiave primaria che identifica in modo univoco un prodotto |
|
NomeProdotto |
Nome descrittivo del prodotto |
|
Prezzo |
Prezzo del prodotto in USD |
|
Stato |
(nessuna annotazione) |
Quindi il DDL per questa tabella è:
CREATE TABLE "Products" (
"ProductID" int, /*Chiave primaria che identifica in modo univoco un prodotto*/
"ProductName" varchar(255), /*Nome descrittivo del prodotto*/
"Price" int, /*Prezzo del prodotto in USD*/
PRIMARY KEY (ProductID)
);
Si noti che sono inclusi solo i tre campi con annotazioni.
Distinguere i campi con lo stesso nome in più tabelle
A volte un database può avere campi con lo stesso nome in più tabelle. Ad esempio, un campo Foto nella tabella Contatti memorizza l'immagine dei clienti, mentre un altro campo Foto nella tabella Ordini memorizza l'immagine delle ricevute degli ordini. Per garantire che un modello di AI possa distinguere i diversi scopi di questi campi, aggiungere annotazioni campo per chiarire. Ad esempio, aggiungere "Foto del cliente" come annotazione per il campo Contatti::Foto e "Foto delle ricevute degli ordini" come annotazione per il campo Ordini::Foto.
Specificare quando è importante distinguere tra maiuscole e minuscole
Le query SQL fanno distinzione tra maiuscole e minuscole, quindi i risultati possono differire a seconda che il testo sia scritto in lettere maiuscole o minuscole. Ad esempio, un campo Etichette nella tabella Prodotti memorizza le etichette di ciascun prodotto, tutte come titolo. In questo caso, per evitare risultati di query imprevisti, aggiungere "Etichette del prodotto, come titolo" come annotazione al campo Prodotti::Etichette.
Fornire i valori di campo validi
Per i campi che utilizzano elenchi di valori personalizzati per specificare valori di campo validi, la migliore metodologia operativa consiste nel fornire i valori validi in un'annotazione campo in modo che il modello di AI possa generare la query SQL migliore. Ad esempio, aggiungere "Qualifica, i valori validi sono Chirurgo, Medico, Dentista, Infermiere e Farmacista" come annotazione per il campo Contatti::Titolo.
Non impostare query per i campi Riassunto
Il valore di un campo Riassunto di un database FileMaker dipende dai record del gruppo trovato corrente quindi, in alcuni casi, una query SQL può restituire un risultato errato. Invece, omettere le annotazioni campo per i campi Riassunto in modo che siano esclusi dal DDL. SQL è abbastanza sofisticato da eseguire le attività dei campi Riassunto senza includerli nel DDL.
Note
Per mantenere la compatibilità con le app personalizzate che utilizzano commenti campo invece di annotazioni campo:
-
Se in una tabella non vengono specificate annotazioni campo, tutti i campi di quella tabella sono inclusi nel DDL. I commenti campo, se presenti, sono inclusi come descrizioni nel DDL.
-
Se un'annotazione campo è vuota e il commento campo inizia con il tag speciale
[LLM], il testo del commento (senza il tag[LLM]) viene utilizzato nel DDL come se fosse un'annotazione.