Campo JSONB
Il campo JSONB (etichettato come jsonb nell’interfaccia) è utilizzato per memorizzare set di dati non strutturati o semi-strutturati, come Oggetti {...} o Array [...].
A differenza di un campo Testo standard, questo campo utilizza il formato JSONB (JSON Binario). Ciò significa che il database verifica che l’input sia JSON valido prima di salvarlo, e memorizza i dati in un formato binario decomposto che consente un’indicizzazione e un’interrogazione efficienti di chiavi specifiche all’interno della struttura.
Proprietà di Configurazione
Sezione intitolata “Proprietà di Configurazione”Quando si configura un campo JSON nella barra laterale destra, sono disponibili le seguenti impostazioni:
- Nome: L’identificatore di sistema univoco per il campo (ad es.
metadata,settings,api_response). - Valore Predefinito: Un oggetto o array JSON valido da assegnare se non vengono forniti dati (ad es.
{"theme": "dark"}o[]). - Descrizione: Una casella di testo facoltativa per descrivere lo schema o lo scopo dei dati JSON.
- Obbligatorio: Se abilitato, il record non può essere salvato a meno che non vengano forniti dati JSON validi.
- Univoco: Se abilitato, assicura che non esistano due record con la stessa struttura e contenuto JSON esatti.
- Nota: Ciò impone un’uguaglianza binaria esatta, il che significa che
{"a": 1, "b": 2}sarebbe probabilmente considerato uguale a{"b": 2, "a": 1}a seconda della normalizzazione del database, ma diverso da{"a": 1}.
- Nota: Ciò impone un’uguaglianza binaria esatta, il che significa che
Suggerimento: Perché JSONB? Utilizziamo il tipo di dati JSONB invece del JSON standard. Sebbene leggermente più lento da scrivere, JSONB è significativamente più veloce da interrogare. Supporta l’indicizzazione (GIN), che ti consente di eseguire ricerche e filtri ad alte prestazioni direttamente su chiavi e valori all’interno dell’oggetto JSON (ad es. trovare tutti gli utenti in cui
attributes->'color'è “blu”).
Casi d’Uso Comuni
Sezione intitolata “Casi d’Uso Comuni”- Configurazione/Impostazioni: Memorizzazione delle preferenze utente che potrebbero cambiare spesso senza richiedere nuove colonne del database (ad es.
{"notifications": true, "theme": "dark"}). - Dati API Esterni: Memorizzazione delle risposte grezze da integrazioni di terze parti (ad es. webhook Stripe o payload di registrazione).
- Attributi Dinamici: Dettagli del prodotto che variano notevolmente tra le categorie (ad es. una T-shirt ha
tagliaecolore, ma un Laptop haramecpu). - Elenchi: Memorizzazione di semplici array di stringhe o numeri (ad es.
["tag1", "tag2", "tag3"]).