Что такое CRUD? Создание, чтение, обновление, удаление простыми словами
CRUD расшифровывается как create, read, update, delete — создание, чтение, обновление и удаление: четыре базовых действия приложения с хранимыми данными. Добавить нового клиента — это create, посмотреть список клиентов — read, поменять ему номер телефона — update, а удалить — delete. Большинство бизнес-приложений — CRM, системы бронирования, трекеры инвентаря, админ-панели — в основном состоят из CRUD с правилами и хорошим интерфейсом поверх.
Почему это важно, когда вы создаёте приложение с ИИ
CRUD — это словарь, который превращает расплывчатую идею приложения в точный запрос. «Приложение для управления поставщиками» оставляет ИИ гадать. «Создание, список, редактирование и удаление поставщиков, с этими полями» точно говорит, какие экраны, операции с базой и серверные маршруты нужно построить.
Это также даёт чек-лист для тестирования. Для каждого вида записей в приложении можно задать четыре вопроса: могу ли я добавить запись, увидеть записи, изменить одну и удалить одну — и могут ли это делать только нужные люди. Удивительно много приложений, созданных ИИ, умеют создавать записи, но не редактировать их, либо позволяют любому удалять что угодно.
Бытовая аналогия: коробка с рецептами
Представьте коробку с карточками рецептов на кухонной полке.
- Create: написать новую карточку и положить её в коробку.
- Read: пролистать коробку или вытащить карточку с рецептом лазаньи.
- Update: зачеркнуть «200 г сыра» и написать «250 г».
- Delete: вынуть карточку и выбросить её.
Теперь добавьте правила: выбрасывать карточки может только старший повар, в каждой карточке должно быть название, и нельзя положить две карточки с одинаковым именем. Это и есть CRUD-приложение с валидацией и правами доступа — а большинство настоящих приложений именно такие.
Как CRUD проявляется на каждом уровне
Каждая операция появляется на экране, на сервере и в базе данных. Если посмотреть их рядом, многое о том, как строятся приложения, становится понятно.
| Операция | На экране | Запрос API (REST) | SQL в базе данных |
|---|---|---|---|
| Create | Кнопка «Новый» и форма | POST /api/suppliers | INSERT |
| Read | Список с поиском и фильтрами; страница подробностей | GET /api/suppliers и GET /api/suppliers/42 | SELECT |
| Update | Форма «Редактировать» или редактирование прямо в списке | PUT или PATCH /api/suppliers/42 | UPDATE |
| Delete | Кнопка «Удалить» с подтверждением | DELETE /api/suppliers/42 | DELETE (или пометка строки как удалённой) |
Экран — это фронтенд, запрос API — способ, которым фронтенд общается с бэкендом, а SQL — способ, которым бэкенд общается с базой данных. Если эти слова новые, см. что такое API и что такое база данных.
Пример: трекер выдачи оборудования
Медиацентр школы выдаёт камеры и микрофоны ученикам и постоянно теряет их из виду. Им нужно простое приложение.
Записи. Два вида сущностей: оборудование (название, тип, серийный номер, состояние) и выдачи (какое оборудование, какой ученик, дата выдачи, срок возврата, дата возврата).
CRUD для оборудования:
- Create: сотрудники добавляют новую камеру с серийным номером. Правило: серийные номера должны быть уникальными.
- Read: список всего оборудования с фильтром по типу и по «свободно сейчас»; страница подробностей, показывающая историю выдач одного предмета.
- Update: поменять состояние на «нужен ремонт».
- Delete: обычно не настоящее удаление. Если камера с 30 прошлыми выдачами удаляется, записи выдач потеряют связь. Вместо этого её помечают «списана»: она исчезает из списка доступного, но история сохраняется. Это называется мягким удалением (soft delete).
CRUD для выдач:
- Create: выдать предмет ученику. Правило: нельзя выдать предмет, который уже на руках.
- Read: «просроченные выдачи» — список, где срок прошёл и даты возврата нет.
- Update: отметить дату возврата, когда предмет вернулся.
- Delete: только для сотрудников, для выдач, внесённых по ошибке.
Права доступа. Ученики могут читать, что доступно; создавать, менять или удалять могут только сотрудники. Эти проверки выполняются на сервере, а не просто скрытием кнопок.
Вот и всё приложение. Интересные части — запрет двойной выдачи, список просроченных и история по каждому предмету — это правила и запросы поверх обычного CRUD.
Ключевые термины
- Запись (строка): один элемент, например один поставщик или одна выдача.
- Сущность / ресурс: вид записей, например «поставщики». Обычно у каждой есть своя таблица и свой набор CRUD-экранов.
- Валидация: проверки ввода — обязательные поля, корректный email, положительное количество. Делается и в форме, для удобства, и на сервере, для безопасности.
- Мягкое удаление (soft delete): пометка записи как удалённой или архивной вместо физического удаления, чтобы история и связи сохранились.
- Пагинация: показ длинного списка по страницам, чтобы приложение оставалось быстрым.
- Журнал аудита: запись о том, кто что создал, изменил или удалил, и когда.
- Админ-панель: набор CRUD-экранов, с помощью которых сотрудники управляют данными приложения.
Распространённые ошибки и заблуждения
- Пропуск одной из четырёх операций. Приложения часто выходят с созданием и чтением, но без редактирования, поэтому каждая опечатка означает удаление и повторный ввод. Проверяйте все четыре для каждой сущности.
- Удаления, которые всё ломают. Удаление клиента, у которого есть счета, может оставить счета-сироты или стереть историю. Решайте для каждой сущности: блокировать удаление, мягко удалять или удалять и связанные записи.
- Права только в интерфейсе. Скрытие кнопки «Удалить» не мешает кому-то отправить запрос
DELETE. Сервер должен проверять, кто спрашивает. - Обновление по ID без проверки владения. Если пользователь A может отредактировать
/api/notes/42, поменяв число в URL, он может изменить заметку пользователя B. Каждое обновление и удаление должно подтверждать, что запись принадлежит запрашивающему. - Нет подтверждения при удалении. Одно случайное нажатие не должно уничтожать данные. Добавьте шаг подтверждения или отмену.
- «CRUD — это слишком просто, не стоит строить». Многие ценные продукты — это CRUD-приложения, которые лучше подходят рабочему процессу, чем универсальный инструмент.
Что просить у вашего ИИ-конструктора
Используйте этот шаблон для каждой сущности, по одной:
Создай раздел поставщики с функциями списка, создания, редактирования и удаления. Поля: название (обязательно), контактный email (корректный email), телефон, категория (одна из: продукты, упаковка, бытовая химия), заметки. Список с поиском по названию и фильтром по категории, по 20 на странице. Перед удалением требуй подтверждение; если у поставщика есть заказы, архивируй вместо удаления. Создавать, редактировать и архивировать могут только вошедшие сотрудники — обеспечь это на сервере.
Затем проверьте все четыре операции: от имени пользователя с правами и от имени того, кому доступа быть не должно. Когда одна сущность работает, добавляйте следующую. Как создать внутренний инструмент показывает, как CRUD-экраны превращаются в полноценное админ-приложение, а что такое Postgres объясняет базу, на которой стоит большинство таких приложений.
CRUD-приложения в Mythex
CRUD-приложения — одна из задач, с которыми ИИ-конструкторы справляются лучше всего, и Mythex здесь не исключение. Опишите в чате сущность и её поля, и Mythex подключит к проекту базу Postgres, создаст таблицу и построит экраны списка, формы и подробностей в живом превью; затем можно запустить /test, чтобы проверить сценарий. В документации есть рецепт CRUD-приложения со стартовым промптом, а конструктор внутренних инструментов и шаблоны дашбордов — хорошие места, чтобы начать.
Вопросы
Что означает CRUD?
CRUD расшифровывается как create, read, update, delete: создать новую запись, просматривать записи, изменить запись и удалить её. Почти каждое приложение, которое хранит данные, построено на этих четырёх операциях.
Что такое CRUD-приложение?
CRUD-приложение — это приложение, основная задача которого — управлять записями через формы, списки и страницы с подробностями, например CRM, трекер инвентаря, панель администратора для бронирований или сервис для поиска работы. Большинство внутренних инструментов и админ-панелей — это CRUD-приложения.
Как CRUD связан с REST API?
В типичном REST API создание использует запрос POST, чтение — GET, обновление — PUT или PATCH, а удаление — DELETE. Бэкенд затем выполняет соответствующую операцию в базе данных: INSERT, SELECT, UPDATE или DELETE.
Не слишком ли простое CRUD-приложение, чтобы быть полезным?
Нет. Многое полезное бизнес-ПО — это CRUD с хорошими правилами, правами доступа и отчётами сверху. Ценность — в правильном моделировании данных и подгонке под рабочий процесс, а не в необычной технологии.