Přejít na hlavní obsah
Datová vrstva aplikace Twenty představuje data, která vaše aplikace přidává do pracovního prostoru — nové typy záznamů, které deklaruje, sloupce, které přidává k existujícím objektům a způsob, jakým se tyto záznamy vzájemně propojují.

V této části

Objekty

defineObject — deklarujte nové typy záznamů s jejich vlastními poli.

Rozšiřování objektů

defineField — přidejte pole ke standardním objektům nebo objektům jiných aplikací.

Vztahy

Obousměrná MANY_TO_ONE / ONE_TO_MANY propojení mezi objekty.

Entity v kostce

SDK je detekuje pomocí analýzy AST v době buildu, takže organizace souborů je na vás — zažitou konvencí je src/objects/, src/fields/ a src/indexes/. Stabilní UUID universalIdentifier vše propojují napříč nasazeními.

Indexy (volitelné)

Aplikace mohou dodávat indexy společně se svými objekty, aby udržely opakované dotazy rychlými. Nejčastějším případem je sloupec se stavem nebo cizím klíčem, který často čtete.
src/indexes/post-card-status.index.ts

Jedinečné indexy

defineIndex přijímá isUnique: true jak pro jedinečnost jednoho sloupce, tak vícesloupcovou jedinečnost. Toto je doporučené primitivum — defineField({ isUnique: true }) je zastaralé a bude odstraněno v některém z příštích vydání.

Další omezení

  • Částečné klauzule WHERE zůstávají pod kontrolou administrátora — aplikace je nemohou deklarovat.
  • Každý objekt je omezen na 10 vlastních indexů (indexy samotného frameworku se nepočítají).
Seřaďte pole fields tak, jak je má Postgres používat — nejlevější sloupec jako první, jako v telefonním seznamu. Indexy nejsou zadarmo: každý zápis do tabulky je aktualizuje. Přidávejte je jen tehdy, když máte dotaz, který je potřebuje.
Hledáte Application Config nebo Roles & Permissions? Ty popisují samotnou aplikaci, nikoli data, která přidává — najdete je pod Config. Hledáte Connections (Linear, GitHub, Slack OAuth)? Ty existují proto, aby byly volány z logických funkcí, a najdete je pod Logic.