În această secțiune
Obiecte
defineObject — declarați noi tipuri de înregistrări cu propriile lor câmpuri.Extinderea obiectelor
defineField — adăugați câmpuri la obiecte standard sau la obiectele altor aplicații.Relații
Conexiuni bidirecționale
MANY_TO_ONE / ONE_TO_MANY între obiecte.Entități dintr-o privire
| Entitate | Scop | Definit cu |
|---|---|---|
| Obiect | Un nou tip de înregistrare personalizat (de ex. PostCard, Invoice) cu propriile sale câmpuri | defineObject() |
| Câmp | O coloană pe un obiect. Câmpurile independente pot extinde obiecte pe care nu le-ați creat (de ex. adăugați loyaltyTier la Company) | defineField() |
| Relație | O legătură bidirecțională între două obiecte — ambele părți declarate ca câmpuri | defineField() cu FieldType.RELATION |
| Indice | Un indice de bază de date pentru a accelera o interogare recurentă asupra unuia dintre obiectele tale | defineIndex() |
src/objects/, src/fields/ și src/indexes/. UUID-urile stabile universalIdentifier leagă totul în toate implementările.
Indici (opțional)
Aplicațiile pot livra indici împreună cu obiectele lor pentru a menține rapide interogările recurente. Cel mai comun caz este o coloană de status sau o coloană cu cheie străină pe care o citești frecvent.src/indexes/post-card-status.index.ts
Indici unici
defineIndex acceptă isUnique: true atât pentru unicitatea pe o singură coloană, cât și pe mai multe coloane. Aceasta este primitiva recomandată — defineField({ isUnique: true }) este învechită (deprecated) și va fi eliminată într-o versiune viitoare.
Alte constrângeri
- Clauzele
WHEREparțiale rămân sub controlul administratorului — aplicațiile nu le pot declara. - Fiecare obiect este limitat la 10 indici personalizați (indicii proprii ai framework-ului nu se pun la socoteală).
fields în modul în care Postgres ar trebui să îl folosească — coloana din stânga prima, ca într-o agendă telefonică. Indicii nu sunt gratuiți: fiecare scriere în tabel îi actualizează. Adaugă unul doar atunci când ai o interogare care are nevoie de el.