Проектирование таблиц и схем в Convex Dashboard

Шаблон развернут, связка работает. Сейчас ваше приложение — это пустой склад. Чтобы запустить стартап, нужно завезти туда товары и научиться ими управлять. В Convex за это отвечает Dashboard.

Где живут данные: Dashboard и NoSQL

Dashboard — это ваш пульт управления проектом. Здесь вы видите всё, что происходит «под капотом»: пользователей, заказы и настройки.

Convex использует подход NoSQL. Забудьте о сложных таблицах из Excel с сотнями связей. Здесь данные хранятся как простые объекты — гибко и наглядно.

Основные понятия:

  • Таблица — категория данных (например, users или orders).
  • Документ — одна запись в таблице. Если таблица — это список контактов, то документ — это карточка одного человека.

Как устроен Документ

Данные в Convex выглядят как обычный список свойств.

Пример документа в таблице tasks:

{
  "text": "Запустить MVP",
  "isCompleted": false,
  "priority": 1
}

Важно: Convex сам присваивает каждому документу уникальный ID и время создания. Вам не нужно об этом заботиться.

Схема данных: страховка от ошибок

В NoSQL можно записывать что угодно, но для бизнеса это риск. Если вместо цены в базу попадет текст, приложение «упадет».

Чтобы этого избежать, мы создаем Схему данных. Это файл convex/schema.ts, который диктует базе правила игры. Он проверяет, чтобы в нужных полях лежали правильные типы данных.

Тип данныхЧто этоПример
v.string()Текст"Купить домен"
v.boolean()Да/Нетtrue
v.number()Число500
v.id("name")Ссылка на другой документid_abc123...

Пример «здоровой» схемы

Вы описываете правила один раз, и Convex следит за их соблюдением. Если вы ошибетесь в названии поля или типе данных, система подсветит ошибку еще до того, как вы запустите код.

import { defineSchema, defineTable } from "convex/server";
import { v } from "convex/values";

export default defineSchema({
  tasks: defineTable({
    text: v.string(),
    isCompleted: v.boolean(),
  }),
});

Практика: создаем первую таблицу

Почувствуйте себя архитектором данных:

  1. Зайдите в свой Dashboard на сайте Convex.
  2. Нажмите "Add Table" и назовите её messages.
  3. Внутри таблицы нажмите "Add Document".
  4. Добавьте поле author (ваше имя) и content (любой текст).

Пока файл schema.ts пуст, Convex разрешает любые поля. Но как только вы пропишете схему в коде, Dashboard превратится в строгого контролера, который не допустит хаоса в данных.

Почему это критично для MVP

Скорость — главное преимущество стартапа. Convex позволяет:

  • Видеть всё: вы наблюдаете за данными пользователей в реальном времени.
  • Меняться быстро: структура базы правится за секунды.
  • Избегать багов: схема данных отсекает 50% типичных ошибок бэкенда.

Мы создали «память» приложения. В следующем уроке научим стартап общаться с пользователем: напишем функции, которые будут мгновенно обновлять ваш сайт при любом изменении в базе. 🚀