In questa sezione
Oggetti
defineObject — dichiara nuovi tipi di record con i propri campi.Estendere gli oggetti
defineField — aggiunge campi agli oggetti standard o di altre app.Relazioni
Connessioni bidirezionali
MANY_TO_ONE / ONE_TO_MANY tra oggetti.Entità in sintesi
| Entità | Scopo | Definito con |
|---|---|---|
| Oggetto | Un nuovo tipo di record personalizzato (ad es. PostCard, Invoice) con i propri campi | defineObject() |
| Campo | Una colonna su un oggetto. I campi autonomi possono estendere oggetti che non hai creato tu (ad es. aggiungere loyaltyTier a Company) | defineField() |
| Relazione | Un collegamento bidirezionale tra due oggetti — entrambi i lati sono dichiarati come campi | defineField() con FieldType.RELATION |
| Indice | Un indice di database per velocizzare una query ricorrente su uno dei tuoi oggetti | defineIndex() |
src/objects/, src/fields/ e src/indexes/. Gli UUID universalIdentifier stabili collegano tutto tra le varie distribuzioni.
Indici (facoltativi)
Le app possono distribuire indici insieme ai loro oggetti per mantenere veloci le query ricorrenti. Il caso più comune è una colonna di stato o di chiave esterna che leggi spesso.src/indexes/post-card-status.index.ts
Indici univoci
defineIndex accetta isUnique: true sia per l’univocità a singola colonna sia per quella multi-colonna. Questa è la primitiva consigliata — defineField({ isUnique: true }) è deprecata e verrà rimossa in una futura release.
Altri vincoli
- Le clausole
WHEREparziali restano sotto il controllo dell’amministratore — le app non possono dichiararle. - Ogni oggetto è limitato a 10 indici personalizzati (gli indici propri del framework non contano).
fields nel modo in cui Postgres dovrebbe usarlo — la colonna più a sinistra per prima, come in un elenco telefonico. Gli indici non sono gratuiti: ogni scrittura sulla tabella li aggiorna. Aggiungine uno solo quando hai una query che ne ha bisogno.