Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 2s
178 lines
11 KiB
Plaintext
178 lines
11 KiB
Plaintext
---
|
||
title: Модель данных
|
||
description: Узнайте, что такое модель данных и как спроектировать её под ваш бизнес.
|
||
---
|
||
|
||
## Что такое модель данных?
|
||
|
||
Модель данных — это структура, определяющая, как информация организована в вашей CRM. Представьте это как **чертёж** ваших данных о клиентах — вы проектируете его один раз, а затем заполняете фактическими данными.
|
||
|
||
## Ключевые понятия
|
||
|
||
### Объекты
|
||
|
||
**Объекты** — это основные категории данных в вашей CRM. Каждый объект представляет тип сущности, которую вы хотите отслеживать.
|
||
|
||
В Twenty предусмотрены стандартные объекты:
|
||
|
||
* **People** — физические лица (контакты, лиды, партнёры)
|
||
* **Companies** — организации
|
||
* **Opportunities** — сделки или продажи
|
||
* **Примечания** — заметки, прикрепленные к записям
|
||
* **Tasks** — задачи, связанные с записями
|
||
|
||
Вы также можете создать **пользовательские объекты** для всего, что специфично для вашего бизнеса (например, Projects, Subscriptions, Events).
|
||
|
||
### Поля
|
||
|
||
**Поля** — это свойства или атрибуты, которые описывают каждый объект. Они хранят фактическую информацию.
|
||
|
||
Например, у объекта **People** есть такие поля, как:
|
||
|
||
* Имя
|
||
* Электронная почта
|
||
* Телефон
|
||
* Должность
|
||
* Company (связь с объектом Companies)
|
||
|
||
Поля имеют разные **типы**: текст, число, дата, список, множественный выбор, связь и другие. Вы можете добавлять пользовательские поля к любому объекту.
|
||
|
||
### Записи
|
||
|
||
**Записи** — это отдельные элементы внутри объекта — реальные данные, которые вы создаёте и которыми управляете.
|
||
|
||
Например:
|
||
|
||
* "John Smith" — это **запись** в объекте People
|
||
* "Acme Corp" — это **запись** в объекте Companies
|
||
|
||
**Аналогия:**
|
||
|
||
| Концепция модели данных | Аналогия из реального мира |
|
||
| ----------------------- | ---------------------------------------------- |
|
||
| **Объекты** | Разделы в книге (категории) |
|
||
| **Поля** | Столбцы в электронной таблице (свойства) |
|
||
| **Записи** | Строки в электронной таблице (реальные записи) |
|
||
|
||
Вы проектируете модель данных (объекты + поля) один раз, затем создаёте множество записей в рамках этой структуры.
|
||
|
||
## Зачем настраивать вашу модель данных?
|
||
|
||
Каждый бизнес работает по-своему. Настройка вашей модели данных означает, что вы можете адаптировать Twenty под **ваши** процессы, а не загонять их в жёсткую систему.
|
||
|
||
Twenty предоставляет полную гибкость:
|
||
|
||
* Создавайте столько пользовательских объектов, сколько вам нужно
|
||
* Добавляйте неограниченное количество пользовательских полей
|
||
* Цена не меняется в зависимости от настроек
|
||
|
||
## Советы по проектированию вашей модели данных
|
||
|
||
### 1. Начните с основных объектов
|
||
|
||
Определите основные сущности, с которыми вы работаете. В Twenty уже предусмотрено:
|
||
|
||
* **People** — ваши контакты
|
||
* **Companies** — ваши компании
|
||
* **Opportunities** — ваши сделки
|
||
|
||
Подумайте, что ещё может понадобиться:
|
||
|
||
* Stripe нужен объект `Subscriptions`
|
||
* Airbnb нужен объект `Trips`
|
||
* Акселератору нужен объект `Batches`
|
||
|
||
### 2. Используйте поля для вариаций, а не новые объекты
|
||
|
||
Если что-то является лишь характеристикой существующего объекта, сделайте это **полем**.
|
||
|
||
**Используйте поля для:**
|
||
|
||
* Категорий и меток (например, `Industry` для Companies)
|
||
* Значений статуса (например, `Stage` для Opportunities)
|
||
* Атрибутов и свойств
|
||
|
||
### 3. Создавайте объект, если он существует сам по себе
|
||
|
||
Если у концепции есть свой жизненный цикл, свойства или отношения, она заслуживает отдельного объекта.
|
||
|
||
**Создавайте объект для:**
|
||
|
||
* **Projects** — со сроками, владельцами и задачами
|
||
* **Subscriptions** — связывают компании, продукты и счета
|
||
* **Events** — включают участников и последующие действия
|
||
|
||
Они выходят за рамки одного поля, поскольку несут свои данные и связи.
|
||
|
||
### 4. Создавайте объект, когда число записей не ограничено
|
||
|
||
Если что-то может связываться многократно, и вы не знаете, сколько раз, используйте объект.
|
||
|
||
**Плохой подход:**
|
||
Создание полей вроде `Product 1`, `Product 2`, `Product 3`...
|
||
|
||
**Хороший подход:**
|
||
Создайте объект `Products` и свяжите его с записями. Таким образом, вы можете поддерживать один, два или сто товаров без изменения вашей модели.
|
||
|
||
### 5. Сначала — простота
|
||
|
||
Начните с полей. Переходите к новым объектам только когда почувствуете ограничения:
|
||
|
||
* Слишком много полей в одном объекте
|
||
* Повторяющиеся записи, которые должны быть отдельными
|
||
* Связи, которые не вписываются должным образом
|
||
|
||
## Специальная заметка по Людям, Компаниям и Возможностям
|
||
|
||
<Warning>
|
||
**Синхронизация электронной почты и календаря работает только с Людьми, Компаниями и Возможностями.**
|
||
|
||
Это единственные объекты, в которых вы можете получить доступ к синхронизированным письмам и встречам из вашего почтового ящика/календаря. Рекомендуем по возможности использовать их.
|
||
</Warning>
|
||
|
||
**Лучшие практики:**
|
||
|
||
* Если вам нужны категории Людей, используйте поля (а не новые объекты)
|
||
* Пример: используйте поле `Person Type` со значениями "Потенциальный клиент" и "Партнёр" вместо создания отдельных объектов
|
||
* Создайте разные **представления** для фильтрации: одно — для партнёров, другое — для потенциальных клиентов
|
||
|
||
**Допустимо иметь поля, которые применимы не к каждой записи.** Например, поле `Referral Link` у Людей, которое применяется только когда `Person Type = Partner`. Скройте это поле в представлениях, где оно не актуально.
|
||
|
||
## Вопросы, которые помогут сделать выбор
|
||
|
||
Спросите себя:
|
||
|
||
<Check>Является ли это просто свойством того, что у меня уже есть, или ему нужны свои собственные свойства?</Check>
|
||
<Check>Понадобится ли мне когда-нибудь отслеживать несколько таких для одной записи, не зная заранее, сколько?</Check>
|
||
<Check>Связывается ли эта концепция с несколькими разными объектами, а не только с одним?</Check>
|
||
<Check>Будет ли у неё собственный жизненный цикл (стадии, даты начала/окончания)?</Check>
|
||
|
||
Если хотя бы на один из них ответ «да», вероятно, пришло время для нового объекта.
|
||
|
||
## Доступ к вашей модели данных
|
||
|
||
1. Перейдите в **Настройки** в левой боковой панели
|
||
2. Нажмите **Модель данных**
|
||
3. Просмотрите все ваши объекты (стандартные и пользовательские)
|
||
4. Нажмите любой объект, чтобы просмотреть и отредактировать его поля
|
||
|
||
<Note>
|
||
**Не видите «Модель данных» в настройках?**
|
||
|
||
Доступ к модели данных обычно ограничен администраторами. Свяжитесь с администратором рабочего пространства, если вам нужен доступ.
|
||
</Note>
|
||
|
||
## Следующие шаги
|
||
|
||
После того как вы спланировали модель данных:
|
||
|
||
* [Как создать пользовательские объекты](/l/ru/user-guide/data-model/how-tos/create-custom-objects)
|
||
* [Как создать пользовательские поля](/l/ru/user-guide/data-model/how-tos/create-custom-fields)
|
||
* [Как создать поля связей](/l/ru/user-guide/data-model/how-tos/create-relation-fields)
|
||
|
||
## Нужна Помощь?
|
||
|
||
<Tip>
|
||
Нужна помощь в проектировании вашей модели данных? [Найти сертифицированного партнера](https://twenty.com/partners/list?categories=SOLUTIONING\&ref=docs-data-model) для проектирования и построения ваших объектов, полей и отношений.
|
||
</Tip>
|