En esta sección
Objetos
defineObject — declara nuevos tipos de registros con sus propios campos.Extender objetos
defineField — agrega campos a objetos estándar o de otras aplicaciones.Relaciones
Conexiones bidireccionales
MANY_TO_ONE / ONE_TO_MANY entre objetos.Entidades de un vistazo
| Entidad | Propósito | Definido con |
|---|---|---|
| Objeto | Un nuevo tipo de registro personalizado (por ejemplo, PostCard, Invoice) con sus propios campos | defineObject() |
| Campo | Una columna en un objeto. Los campos independientes pueden ampliar objetos que no creaste (por ejemplo, agregar loyaltyTier a Company) | defineField() |
| Relación | Un vínculo bidireccional entre dos objetos: ambos lados se declaran como campos | defineField() con FieldType.RELATION |
| Índice | Un índice de base de datos para acelerar una consulta recurrente sobre uno de tus objetos | defineIndex() |
src/objects/, src/fields/ y src/indexes/. Los UUID universalIdentifier estables vinculan todo a través de los despliegues.
Índices (opcional)
Las aplicaciones pueden incluir índices junto con sus objetos para mantener rápidas las consultas recurrentes. El caso más habitual es una columna de estado o de clave externa que lees con frecuencia.src/indexes/post-card-status.index.ts
Índices únicos
defineIndex acepta isUnique: true tanto para unicidad de una sola columna como de varias columnas. Este es el elemento primitivo recomendado — defineField({ isUnique: true }) está obsoleto y se eliminará en una versión futura.
Otras restricciones
- Las cláusulas
WHEREparciales permanecen bajo el control del administrador: las aplicaciones no pueden declararlas. - Cada objeto está limitado a 10 índices personalizados (los índices propios del framework no cuentan).
fields de la forma en que Postgres debería usarlo: la columna más a la izquierda primero, como en una guía telefónica. Los índices no son gratuitos: cada escritura en la tabla los actualiza. Añade uno solo cuando tengas una consulta que lo necesite.