Что такое база данных? Руководство для тех, кто создаёт приложения
База данных — это упорядоченное хранилище информации, в которое приложение записывает данные и из которого их читает: пользователи, заказы, записи, сообщения. В отличие от информации, которая хранится только во вкладке браузера, данные в базе остаются на месте после обновления страницы или перезапуска, и все, кто пользуется приложением, видят одни и те же записи. Большинство баз организуют данные в таблицы, похожие на листы электронной таблицы, но с жёсткими правилами, которые поддерживают согласованность данных.
Почему это важно при создании с ИИ
Самый частый сюрприз для тех, кто создаёт приложения с ИИ, — приложение, которое выглядит готовым, но всё забывает. Вы добавляете клиента, обновляете страницу, и его нет. Обычно это значит, что приложение хранило данные в памяти браузера, а не в базе данных.
База данных также хранит многие из самых важных решений, которые вы можете даже не замечать:
- Что вы записываете. Если не хранить статус записи, невозможно показать, какие записи отменены.
- Как всё связано. Может ли один клиент иметь много записей или одна запись — несколько услуг? Это определяет всё приложение.
- Кто что видит. Большинство ошибок с приватностью связаны с тем, какие записи может читать пользователь.
Проектировать базу самому не нужно. Но понимание основ позволяет точно описать данные и заранее замечать проблемы.
Бытовая аналогия
Представьте аккуратный картотечный шкаф в небольшом офисе.
Каждый ящик хранит один вид документов: один ящик для клиентов, другой для записей, третий для счетов. Внутри каждого ящика все папки оформлены одинаково, с одними и теми же заполненными полями. У каждой папки есть уникальный номер, и когда счёт принадлежит клиенту, в папке счёта указан номер клиента, а не копия всей его карточки.
Вот что такое реляционная база данных. Ящики — это таблицы, папки — это строки, поля — это столбцы, номера папок — это первичные ключи, а записки, указывающие на другую папку, — это внешние ключи. Хороший офис-менеджер также следит за правилами: нет записи без даты, у двух клиентов не может быть одного номера. База данных делает то же самое.
Практический пример: приложение для записи в салон красоты
Предположим, вы просите ИИ создать сайт для записи в парикмахерскую. Разумная база будет состоять из четырёх таблиц.
services (услуги)
| id | name | duration_minutes | price |
|---|---|---|---|
| 1 | Стрижка | 45 | 40.00 |
| 2 | Окрашивание | 90 | 95.00 |
staff (мастера)
| id | name | |
|---|---|---|
| 1 | Сара | sara@example.com |
| 2 | Омар | omar@example.com |
customers (клиенты)
| id | name | phone | |
|---|---|---|---|
| 101 | Лена Парк | lena@example.com | 555-0100 |
bookings (записи)
| id | customer_id | service_id | staff_id | starts_at | status |
|---|---|---|---|---|---|
| 5001 | 101 | 1 | 2 | 2026-10-03 14:00 | подтверждена |
Посмотрите на таблицу bookings. Она не копирует имя и телефон Лены в каждую запись; она хранит customer_id = 101. Если Лена поменяет номер телефона, он изменится в одном месте, и каждая запись покажет новый. В этом главная идея реляционной базы: каждый факт хранится один раз, а на него ссылаются.
Та же структура отвечает на полезные вопросы:
- «Какие окна свободны у Омара в пятницу?» — посмотреть записи Омара на этот день.
- «Сколько заработали окрашивания за месяц?» — соединить записи с услугами и сложить цены.
- «Какие клиенты не приходили 90 дней?» — сравнить клиентов с их последней записью.
Общие термины
| Термин | Что это значит |
|---|---|
| Таблица | Набор записей одного вида, например клиенты или записи. |
| Строка (запись) | Один элемент таблицы: один клиент, одна запись. |
| Столбец (поле) | Один вид информации, который есть у каждой строки, например email или цена. |
| Первичный ключ | Уникальный идентификатор каждой строки, обычно число или случайная строка. |
| Внешний ключ | Столбец, который ссылается на строку другой таблицы, например customer_id в записях. |
| Схема | Общий дизайн: какие таблицы существуют, их столбцы и связи между ними. |
| Запрос (query) | Запрос на чтение или изменение данных, например «все записи на завтра». |
| SQL | Structured Query Language, стандартный язык запросов к реляционным базам. |
| Миграция | Сохранённое, повторяемое изменение схемы, например добавление столбца. |
| Индекс | Структура поиска, которая ускоряет поиск по столбцу, как предметный указатель в книге. |
| CRUD | Create, Read, Update, Delete: четыре базовых действия приложений с данными. |
| Резервная копия | Копия данных, которую можно восстановить, если что-то пойдёт не так. |
Виды баз данных
| Вид | Как хранит данные | Примеры | Подходит для |
|---|---|---|---|
| Реляционная (SQL) | Таблицы с фиксированными столбцами и связями между ними | Postgres, MySQL, SQLite | Большинства бизнес-приложений: записи, магазины, CRM, SaaS |
| Документная (NoSQL) | Гибкие документы в формате, похожем на JSON | MongoDB, Firestore | Данных, структура которых сильно отличается от записи к записи |
| Ключ-значение | Значение, сохранённое под ключом | Redis | Кэширования, короткоживущих данных вроде сессий |
Для почти всего, что основатель или малый бизнес создаёт в первую очередь, реляционная база — надёжный выбор по умолчанию.
Где база данных находится в приложении
Посетители никогда не общаются с базой напрямую. Страница в их браузере (фронтенд) запрашивает данные у вашего сервера (бэкенда), обычно через API. Сервер проверяет, кто спрашивает и разрешено ли ему это, затем делает запрос к базе и отправляет обратно только то, что этот человек должен видеть.
Этот промежуточный шаг важен. Если бы браузер мог напрямую запрашивать базу с полным доступом, любой мог бы открыть инструменты разработчика и прочитать всё.
Частые ошибки и заблуждения
- Хранение данных только в браузере. Хранилище браузера (например, localStorage) живёт на одном устройстве и в одном браузере. Это нормально для запомненного фильтра, но не для заказов.
- Всё в одной таблице. Одна таблица «записи», в каждую строку которой скопированы имя клиента, телефон и цена услуги, быстро рассинхронизируется.
- Хранение паролей открытым текстом. Пароли нужно хешировать, а не хранить в читаемом виде. См. что такое аутентификация.
- Нет правил для данных. Без обязательных полей и требований уникальности вы получите записи без даты и дублирующихся клиентов.
- Забыли об удалении. Решите, удаляет ли удаление клиента его записи, сохраняет их или блокирует удаление.
- Эксперименты на рабочих данных. Рискованные изменения сначала проверяйте в безопасной среде и храните резервные копии.
- Таблица как база навсегда. Таблицы отлично подходят для старта, но плохо справляются с множеством одновременных пользователей и правами доступа. См. как превратить таблицу в приложение.
Что попросить у конструктора на основе ИИ
- «Сохрани это в базе данных, а не в браузере. Скажи, какие таблицы ты создашь.»
- «Покажи схему простой таблицей: каждая таблица, её столбцы и связи.»
- «Клиент может иметь много записей; у каждой записи ровно одна услуга и один мастер.»
- «Сделай email обязательным и уникальным для клиентов.»
- «Не допускай пересечения двух записей к одному мастеру.»
- «Только вошедший владелец может читать все записи; клиенты видят только свои. Проверяй это на сервере.»
- «Когда я удаляю услугу, не удаляй прошедшие записи — лучше помечай услугу как неактивную.»
Базы данных в Mythex
Когда приложению нужно сохранять данные, Mythex добавляет в проект выделенную базу Postgres. Вы можете попросить об этом в чате («сохраняй заявки из листа ожидания в базу данных») или использовать команду /database. Параметры подключения автоматически передаются вашему приложению, а агент создаёт таблицы. База засыпает после пяти минут простоя и просыпается при следующем запросе; при публикации оплачивается время, когда она была активна, с того же баланса кредитов, что и для создания. Доступна на тарифах Free и Pro. Подробности — в документации по базам данных, а шаблоны приложений содержат готовые стартовые точки для приложений на данных.
Вопросы
Что такое база данных простыми словами?
База данных — это упорядоченное хранилище информации, в которое приложение записывает данные и из которого их читает, например пользователей, заказы или записи. В отличие от данных, которые хранятся только во вкладке браузера, эта информация остаётся на месте после обновления страницы, перезапуска или когда приложение открывают с другого устройства.
Является ли таблица в Excel базой данных?
Таблица может хранить такие же данные, но не предназначена для приложений. Настоящая база данных следит за тем, что хранится в каждом столбце, надёжно связывает таблицы между собой, справляется с тем, что многие пишут одновременно, и контролирует, кто что может читать.
В чём разница между SQL и NoSQL базами данных?
Реляционные (SQL) базы данных, например Postgres и MySQL, хранят данные в таблицах с заданными столбцами и связями между ними. NoSQL-базы, например MongoDB, хранят более гибкие документы. Большинству бизнес-приложений — записям, магазинам, CRM — реляционная модель подходит хорошо.
Нужна ли моему приложению база данных?
Если оно должно запоминать то, что вводят люди, — регистрации, заказы, сообщения, настройки — и показывать это позже или другим людям, то да. Чисто информационный сайт без форм, которые что-то сохраняют, обычно не нуждается в базе данных.