Що таке CRUD? Create, Read, Update, Delete пояснено
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-екранів.
- Валідація: перевірки вхідних даних — обов'язкові поля, коректна електронна пошта, додатна кількість. Робіть її у формі для зручності і на сервері для безпеки.
- М'яке видалення (soft delete): позначення запису як видаленого або архівного замість фактичного видалення, щоб історія та зв'язки збереглися.
- Пагінація: показ довгого списку по сторінках, щоб застосунок лишався швидким.
- Журнал аудиту: запис того, хто що створив, змінив або видалив, і коли.
- Адмін-панель: набір CRUD-екранів, за допомогою яких персонал керує даними застосунку.
Поширені помилки та хибні уявлення
- Забути одну з чотирьох операцій. Застосунки часто мають створення і читання, але без редагування, тож кожна помилка друку означає видалити й вводити заново. Перевіряйте всі чотири для кожної сутності.
- Видалення, що ламає речі. Видалення клієнта, який має рахунки, може залишити «осиротілі» рахунки або стерти історію. Вирішуйте для кожної сутності: заборонити видалення, м'яко видалити або видалити пов'язані записи теж.
- Права лише в інтерфейсі. Приховання кнопки «Видалити» не завадить комусь надіслати запит
DELETE. Сервер має перевіряти, хто запитує. - Оновлення за ID без перевірки власності. Якщо користувач А може редагувати
/api/notes/42, змінивши число в URL, він може редагувати нотатку користувача Б. Кожне оновлення і видалення має підтверджувати, що запис належить тому, хто робить запит. - Немає підтвердження видалення. Один випадковий дотик не повинен знищувати дані. Потрібен крок підтвердження або можливість відміни.
- «CRUD означає базовий, тож його не варто будувати». Багато цінних продуктів — це CRUD-застосунки, які краще підходять робочому процесу, ніж універсальний інструмент.
Що просити у вашого ШІ-конструктора
Використовуйте цей шаблон для кожної сутності, по одній:
Створи функцію постачальників зі списком, створенням, редагуванням і видаленням. Поля: назва (обов'язкове), контактна електронна пошта (коректний формат), телефон, категорія (одна з: продукти, упаковка, засоби для прибирання), примітки. Список з пошуком за назвою і фільтром за категорією, по 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 з добрими правилами, правами доступу та звітами поверх. Цінність у тому, щоб добре змоделювати дані й відповідати робочому процесу, а не в незвичайних технологіях.