53 lines
4.8 KiB
Plaintext
53 lines
4.8 KiB
Plaintext
---
|
||
title: Обзор
|
||
description: Определяйте структуру данных, которые ваше приложение добавляет в рабочее пространство — объекты, поля и связи.
|
||
icon: database
|
||
---
|
||
|
||
**Уровень данных** приложения Twenty — это данные, которые ваше приложение *добавляет* в рабочее пространство: новые типы записей, которые оно объявляет, столбцы, которые оно добавляет к существующим объектам, и то, как эти записи связываются друг с другом.
|
||
|
||
```text
|
||
┌──────────────────────────────────────────────────┐
|
||
│ Object — a record type, e.g. PostCard │
|
||
│ ├─ Field (name, type, label) │
|
||
│ ├─ Field │
|
||
│ └─ Relation (link to another object) │
|
||
└──────────────────────────────────────────────────┘
|
||
│
|
||
├── lives in your app, OR
|
||
│
|
||
▼
|
||
┌──────────────────────────────────────────────────┐
|
||
│ Standard / other apps' objects │
|
||
│ └─ Field added by your app via defineField │
|
||
└──────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## В этом разделе
|
||
|
||
<CardGroup cols={2}>
|
||
<Card title="Объекты" icon="таблица" href="/l/ru/developers/extend/apps/data/objects">
|
||
`defineObject` — объявляйте новые типы записей с их собственными полями.
|
||
</Card>
|
||
<Card title="Расширение объектов" icon="wand-magic-sparkles" href="/l/ru/developers/extend/apps/data/extending-objects">
|
||
`defineField` — добавляйте поля к стандартным объектам или объектам других приложений.
|
||
</Card>
|
||
<Card title="Связи" icon="diagram-project" href="/l/ru/developers/extend/apps/data/relations">
|
||
Двусторонние связи `MANY_TO_ONE` / `ONE_TO_MANY` между объектами.
|
||
</Card>
|
||
</CardGroup>
|
||
|
||
## Сущности вкратце
|
||
|
||
| Сущность | Назначение | Определяется с помощью |
|
||
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- |
|
||
| **Объект** | Новый пользовательский тип записей (например, PostCard, Invoice) с собственными полями | `defineObject()` |
|
||
| **Поле** | Столбец в объекте. Отдельные поля могут расширять объекты, которые вы не создавали (например, добавьте `loyaltyTier` к объекту Company) | `defineField()` |
|
||
| **Связь** | Двусторонняя связь между двумя объектами — обе стороны объявлены как поля | `defineField()` с `FieldType.RELATION` |
|
||
|
||
SDK обнаруживает их с помощью анализа AST во время сборки, поэтому организация файлов остается на ваше усмотрение — по соглашению используются `src/objects/` и `src/fields/`. Стабильные UUID `universalIdentifier` связывают все воедино между развертываниями.
|
||
|
||
<Note>
|
||
Ищете **Application Config** или **Roles & Permissions**? Они описывают само приложение, а не данные, которые оно добавляет, — их можно найти в разделе [Config](/l/ru/developers/extend/apps/config/overview). Ищете **Connections** (Linear, GitHub, Slack OAuth)? Они существуют для вызова *из* логических функций и находятся в разделе [Logic](/l/ru/developers/extend/apps/logic/connections).
|
||
</Note>
|