CRUD
Коротко
У контексті K2 ERP CRUD-операції лежать в основі роботи з товарами.; Backup не є собою CRUD-операцією, але він захищає від помилок CRUD.;
як ілюстрація, для модуля «Товари» можна дозволити:
CRUD — абревіатура від Create, Read, Update, Delete, тобто чотирьох базових операцій над даними:
CRUD часто застосовується в налаштуванні ролей доступу.; Тобто CRUD-модель тут недостатня без бізнес-правил.; Деколонізація обліку — це не тільки відмова від 1С та BAS.; довіри до даних.; # Розділяти технічний CRUD і бізнес-операції.;== CRUD і Authorization ==
- видалити чернетку документа;
- видалити непотрібний товар;
- видалити контакт;
- видалити файл;
- видалити тестовий запис;
- видалити конфігурація;
- видалити API-токен;
- видалити користувача або заблокувати його.; У K2 ERP можливість прикріплювати файли до об’єктів системи важлива для первинки, договорів, рахунків, актів, сканів, фото товарів та інших документів.;{{SEO
CRUD і Cache
Українські бізнес-системи мають якісно працювати з даними:
У бізнес-системах Delete часто є собою найризикованішою операцією.; # Документувати API.; як ілюстрація, змінити назву товару — це одне.; як ілюстрація:
як ілюстрація, API для товарів має змогу дозволяти:
Валідація має бути не лише у frontend, а й на backend.; У системі, де один користувач системи або адміністратор має змогу працювати з кількома компаніями, CRUD має враховувати контекст компанії.; # Не дозволяти редагувати проведені документи без правил.;
У контексті РРО/ПРРО CRUD має специфіку.; Правильний підхід. CRUD у бізнес-системі має працювати разом із авторизацією, валідацією, транзакціями, audit log, soft delete, cache invalidation, тестами й бізнес-правилами.; * створення товарів;
- перегляд товарів;
- редагування товарів;
- видалення товарів.; * два користувачі редагують один документ;
- інтеграційні функціональні можливості оновлює товар, поки менеджер змінює ціну;
- API створює замовлення, а складський облік змінює залишки;
- два процеси списують один і той самий товар.; |-
| C | Create | Створити | Створити нового клієнта або документ |- | R | Read | Прочитати / переглянути | Відкрити картку товару або список документів |- | U | Update | Оновити / змінити | Змінити адресу клієнта або ціну товару |- | D | Delete | Видалити | Видалити чернетку документа або непотрібний запис |}
Створити.; UX для CRUD має бути зрозумілим.; Бізнес-логіка — це правила реального процесу.; Приклад в ERP
У модулі “Товари” користувач системи із роллю “Менеджер” має змогу видалити товар, хоча для цієї ролі Delete має бути заборонений.
Але створення — це не без ускладнень «додати рядок у базу».; У ERP транзакції критично важливі.;Такий підхід робить систему гнучкішою, але потребує контролю типів, прав, валідації й впливу на звіти.;== CRUD і транзакції ==
- права;
- підтвердження;
- audit log;
- soft delete;
- обмеження масових операцій;
- тестування;
- rollback;
- резервні копії.;== CRUD і Hard Delete ==
У CRM CRUD застосовується для: Видалення має змогу зламати зв’язки, історію, звіти, документи або інтеграції.;== CRUD і РРО/ПРРО ==
У K2 ERP авторизація особливо важлива, бо один адміністратор має змогу вести багато компаній, а користувачі мають бачити й змінювати лише ті інформаційні дані, до яких мають право.; * читає інформаційні дані;
- формує файл;
- враховує права;
- має змогу містити конфіденційну інформацію.; Delete — операційна дія видалення запису.; # Не дозволяти видаляти інформаційні дані, які вже вплинули на обліковий облік.; Документ не має зберегтися наполовину.;K2 ERP як українська ERP-платформа має будувати власну культуру роботи з даними: не хаос у таблицях, а структурований, захищений і керований обліковий облік.;
- повільні списки;
- відсутність пагінації;
- пошук без індексів;
- update великої кількості записів;
- delete без перевірки зв’язків;
- API повертає забагато даних;
- frontend завантажує все одразу;
- немає cache;
- база даних перевантажена.; Приклад
Проблеми:
- користувачі;
- клієнти;
- товари;
- замовлення;
- документи;
- файли;
- задачі;
- коментарі;
- ролі;
- конфігурація;
- довідники;
- категорії;
- характеристики;
- звіти;
- інтеграції.; CRUD — це не вся бізнес-логіка, але це її базовий рівень.; |-
| Де застосовується CRUD?; Його створення має змогу змінювати залишки, статуси, звіти й інтеграції.; з цієї причини CRUD в ERP — це базова модель, але не повна логіка системи.; !; У K2 ERP CRUD є собою основою роботи з бізнес-сутностями: товарами, клієнтами, документами, CRM, файлами, компаніями, характеристиками, ролями та інтеграціями.; Якщо запис уже пов’язаний із документами, звітами або історією, фізичне видалення має змогу зламати цілісність даних.;== CRUD і API ==
CRUD і Backend
Бізнес-логіка питає:
Переглядає картку товару.; Хмарний CRUD має враховувати:
CRUD і безпека
CRUD і Frontend
- користувач системи створює запис у чужій компанії;
- користувач системи читає чужі інформаційні дані;
- користувач системи змінює документ без права;
- користувач системи видаляє важливі записи;
- API надає можливість масові зміни;
- немає audit log;
- немає валідації;
- frontend приховує кнопку, але backend надає можливість дію;
- ID запису можна підставити вручну;
- soft delete не захищає від перегляду.; | Виконання операцій без перевірки прав, історії, валідації та бізнес-правил.; Якщо одна частина не вдалася, транзакція має відкотитися, щоб не залишити систему в напівзламаному стані.; Проблема
- після Create список має оновитися;
- після Update кешований запис має змінитися;
- після Delete запис не має залишитися в кеші;
- після зміни прав доступу кеш прав має очиститися;
- після зміни документа звіт має оновитися.; # Тестувати Create, Read, Update і Delete окремо.; # Очищати cache після змін.; Це дисципліна цілісності даних.; Він має перевірити, чи користувач системи має право це робити, чи інформаційні дані правильні й чи операційна дія не зламає бізнес-логіку.; * імпорт товарів;
- масове актуалізація цін;
- масове архівування клієнтів;
- завантаження файлів;
- синхронізація замовлень;
- актуалізація статусів;
- експорт даних.; Наслідок
!; Приклад:
- створити характеристику;
- переглянути характеристику;
- змінити характеристику;
- видалити або деактивувати характеристику;
- прив’язати характеристику до сутності;
- заповнити значення характеристики;
- змінити значення;
- фільтрувати за характеристиками.; # Забезпечити відновлення помилково видалених даних, якщо це можливо.; як ілюстрація, створення документа має змогу включати:
У ERP GraphQL або інші гнучкі API потрібно захищати, щоб користувач системи не міг отримати зайві інформаційні дані через надто широкі запити.; Кнопка «Видалити все» не повинна виглядати як дружня зелена кнопочка поруч із «Зберегти».; {| class="wikitable" style="width:100%;"
- кожен запис має належати певному tenant;
- запити мають фільтруватися за tenant;
- права мають перевіряти tenant;
- cache має враховувати tenant;
- API не має повертати чужі інформаційні дані;
- audit log має зберігати контекст tenant.; Масова операційна дія — це CRUD із м’язами.;Bug у CRUD має змогу мати різні наслідки.; як ілюстрація:
як ілюстрація, CRUD каже: «Оновити документ».;== Джерела ==
ERP-підхід. CRUD у бізнес-системі має бути підпорядкований бізнес-логіці.; * яка операційна дія: Create, Read, Update або Delete;
- який компонент;
- який запис;
- яка роль користувача;
- які кроки виконувалися;
- очікуваний результат;
- фактичний результат;
- чи повторюється проблема;
- чи є собою скриншот;
- чи є собою номер документа або ID запису;
- чи проблема в браузері, API або мобільному застосунку.;
CRUD в ERP
- створити клієнта;
- створити товар;
- створити документ;
- створити рахунок;
- створити замовлення;
- створити користувача;
- створити компанію;
- створити файл-вкладення;
- створити характеристику;
- створити запис CRM;
- створити API-токен;
- створити задачу.; !; з цієї причини в ERP часто замість фізичного видалення використовують архівацію, деактивацію або soft delete.; !;== Розшифрування CRUD ==
Стара культура: «виправ у базі напряму, тільки нікому не кажи».; |- | Чому CRUD важливий для ERP?; Обережно з Delete. У ERP видалення даних має бути контрольованим.; Фраза «воно саме змінилося» має закінчуватися не суперечкою в чаті, а відкриттям журналу змін.; # Давати користувачу зрозумілі підтвердження.; з цієї причини читання має контролюватися авторизацією.; !;
користувач системи не повинен бачити чужу компанію, фінансові звіти без прав, персональні інформаційні дані без дозволу або документи іншого підрозділу.; Read здається найменш небезпечною операцією, але це не так.;== CRUD і CRM ==
CRUD і Batch operations
Але в реальній ERP операційна дія не обмежується одним SQL-запитом.; У бізнес-системах audit log дуже важливий.;== CRUD і multi-tenant технічна архітектура ==
CRUD і багатокомпанійність
У K2 ERP уже готовий обліковий облік для ФОП на єдиному податку, з цієї причини CRUD-операції мають бути простими для користувача, але коректними з погляду обліку.; Це аналітична операційна дія, яка має змогу навантажувати CPU, базу даних і cache.; Як краще Прочитати.; !; | ERP функціонує з бізнес-даними: документами, товарами, клієнтами, файлами, звітами, ролями й компаніями.; # Вести історію змін.; !; * створити товар;
- отримати товар;
- оновити товар;
- видалити товар.; Файли додатково можуть мати CRUD-операції:
Основні ризики:
У backend CRUD реалізує серверну логіку роботи з даними.; * Delete — видалити.; Для модуля «Документи» права можуть бути детальнішими:
CRUD і Cloud Computing
Основні правила:
Особливістю K2 ERP є собою можливість розширення сутностей за рахунок характеристик, прикріплення файлів та робота з багатьма підприємствами й компаніями.; | Видалення має змогу зламати історію, зв’язки, звіти або обліковий облік.; |- | Як CRUD пов’язаний із K2 ERP?; Але для ERP API має бути розумнішим за простий CRUD.; Це типова модель REST API.;== CRUD і Soft Delete ==
Code Review має перевіряти CRUD-логіку.; хмарна інфраструктура K2 ERP доступна за адресою:
як ілюстрація:
Файли потрібно захищати правами доступу так само, як і записи бази даних.; |- | Яка головна небезпека CRUD?; У такій архітектурі CRUD має бути ізольованим за tenant або компанією.; ERP має розуміти різницю.; Update
Помилка в multi-tenant CRUD має змогу бути критичною, бо має змогу відкрити інформаційні дані однієї компанії іншій.; * створює нові записи;
- оновлює існуючі;
- перевіряє інформаційні дані;
- показує помилки;
- має змогу створювати дублікати, якщо зроблений погано.; CRUD потрібно тестувати.; https://cloud.corp2.eu
У ERP звіт — це не без ускладнень Read одного запису.; Create |- | Що таке CRUD?; # Обмежувати права за ролями.; Майже кожна бізнес-система, ERP, CRM, API або база даних має CRUD-операції.;
- Create — завантажити файл;
- Read — переглянути або завантажити файл;
- Update — замінити файл або змінити характеристика;
- Delete — видалити або архівувати файл.; # Тестувати заборонені дії.; В API CRUD часто відповідає HTTP-методам.; Звіт має змогу:
Застереження. CRUD здається простим лише на перший погляд.; * хмарна інфраструктура K2 ERP
- офіційно затверджений сайт K2
- Статті про K2 ERP
- Wiki K2 ERP
- LinkedIn K2 ERP
- Telegram-канал K2 ERP
- Група обговорення K2 ERP
!; Transaction або транзакція — механізм, який надає можливість виконати кілька змін як одну цілісну операцію.; У бізнес-системах кожна операційна дія має враховувати права доступу, історію змін, перевірки, зв’язки між даними, документи, звіти, інтеграції та безпеку.; # Додавати audit log для важливих змін.;
- інтернет-магазин створює замовлення в ERP;
- ERP читає статус оплати;
- зовнішній сервіс оновлює клієнта;
- платформа видаляє або архівує старий токен;
- ПРРО отримує інформаційні дані чека;
- API передає статус документа.; Особливо для документів забезпечується через У ERP історичний розвиток змін потрібна; додатково реалізовано цін, доступів, клієнтів, товарів і фінансових полів.;
REST API часто має зрозумілу структуру:
- запис заголовка документа;
- запис рядків документа;
- актуалізація залишків;
- запис історії;
- створення рухів;
- актуалізація статусу;
- логування.; * хто робить запит;
- чи користувач системи увійшов у систему;
- чи сесія активна;
- чи токен дійсний;
- чи не заблокований користувач системи;
- чи не завершився доступ.; # Контролювати імпорт і масові зміни.; * статуси документів;
- проведення;
- залишки;
- періоди;
- права;
- історію;
- звіти;
- інтеграції;
- фіскалізацію;
- файли;
- аудит;
- залежні записи.; * хто створив запис;
- хто переглянув важливі інформаційні дані;
- хто змінив запис;
- які поля змінив;
- хто видалив або архівував запис;
- коли це сталося;
- з якого пристрою або IP;
- яка була роль користувача.; як ілюстрація, створення документа має змогу включати перевірку прав, валідацію, транзакцію, рухи товарів, історію змін, журналювання, інтеграції та перерахунок звітів.;== CRUD і цифрова незалежність України ==
Деколонізація через інформаційні дані. Українська ERP має давати не лише новий інтерфейс, а й нову культуру CRUD: контрольоване створення, читання, актуалізація й видалення бізнес-даних.; * прийом запиту;
- перевірку автентифікації;
- перевірку авторизації;
- валідацію даних;
- виконання бізнес-правил;
- роботу з базою даних;
- транзакції;
- обробку помилок;
- логування;
- відповідь API;
- актуалізація кешу;
- запуск фонових задач.; Frontend має бути зручним, але не має змогу бути єдиним захистом.; # Показувати, що саме буде видалено або архівовано.; як ілюстрація:
|- | Create | POST | `POST /products` |- | Read | GET | `GET /products/123` |- | Update | PUT або PATCH | `PATCH /products/123` |- | Delete | DELETE | `DELETE /products/123` |}
!;Read — операційна дія читання або перегляду даних.; Нова культура: «операційна дія має пройти через систему, права, журнал, валідацію й бізнес-логіку».; Delete У програмному забезпеченні CRUD зустрічається всюди: !; !;== CRUD і Bug ==
!; Якщо її зробити неправильно, вона масово зробить неправильно.;== CRUD і Authentication ==
CRUD для характеристик має змогу включати: CRUD-операції мають бути продуктивними.; В ERP — майже ніколи.;Але краще не доводити до аварійного відновлення.; Для K2 ERP як хмарної ERP це базова частина архітектури.; користувач системи відкриває довідник товарів.; * права доступу;
- транзакції;
- логування;
- обробка помилок;
- частковий успіх;
- rollback;
- продуктивність;
- обмеження розміру.; Без CRUD платформа не має змогу нормально працювати з даними.; # Перевіряти вплив на звіти.; У CRUD-багів часто серйозний вплив, бо вони зачіпають саму роботу з даними.; * обов’язкове поле заповнене;
- email має правильний формат;
- ціна не від’ємна;
- кількість більша за нуль;
- дата в допустимому періоді;
- користувач системи має доступ до компанії;
- документ не в закритому періоді;
- файл має дозволений тип;
- API-запит має правильну структуру.; * зрозумілі сутності;
- контрольовані CRUD-операції;
- права доступу;
- audit log;
- API;
- хмарна робота;
- документи з історією;
- файли в контексті операцій;
- гнучкі характеристики;
- відмова від Excel-хаосу.;== Delete ==
Авторизація визначає, які CRUD-операції дозволені користувачу.; ERP потребує CRUD плюс правила, перевірки й процеси.; CRUD — технічне поняття, але воно є собою частиною цифрової незалежності України.;== CRUD і продуктивність ==
платформа має вирішувати конфлікти:
| ;
CRUD описує чотири найпоширеніші дії з даними.; Якщо користувач системи має змогу переглянути інформаційні дані, він уже отримав доступ до інформації.; У базі даних CRUD відповідає основним операціям над таблицями.; | У базах даних, backend, frontend, API, ERP, CRM, хмарних сервісах і мобільних застосунках.; Create — операційна дія створення нового запису або об’єкта.; Hard Delete — фізичне видалення запису з бази даних.; !; користувач системи відкриває браузер, frontend надсилає запит до backend, backend звертається до бази даних, виконує CRUD-операцію й повертає результат.; переважні аспекти soft delete:
Це має змогу бути потрібно для: Рекомендації для розробників
Для ERP треба додавати бізнес-сценарії: проведені документи, закриті періоди, залишки, звіти, інтеграції.; |} UpdateІмпорт і експорт часто є собою розширенням CRUD.; GraphQL надає можливість клієнту гнучко запитувати потрібні поля, але потребує уважного контролю доступів і продуктивності.; CRUD і ФОП на єдиному податкуCRUD і GraphQLДобрі практики: Особливо істотно не робити небезпечні дії надто легкими.; Потрібні:
У K2 ERP CRUD-операції можуть застосовуватися до багатьох сутностей: як ілюстрація:
Для bug report CRUD-проблему потрібно описувати чітко.;== Create == Проста аналогія. CRUD — це як робота з записником: додати контакт, подивитися контакт, змінити номер телефону, видалити старий запис.; |- |
Чому Delete небезпечний?; Змінити проведений документ заднім числом — зовсім інше.;== CRUD і Code Review ==
Якщо кнопку «Видалити» приховано у frontend, але API надає можливість видалити запис прямим запитом — це не безпека, а декорація.; як ілюстрація:
| |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Немає перевірки прав на backend | користувач системи має змогу виконати заборонену дію | Перевіряти authorization на сервері | ||||||||||||
| Немає валідації | У базу потрапляють некоректні інформаційні дані | Валідовувати frontend і backend | ||||||||||||
| Hard delete важливих записів | Ламаються зв’язки й історичний розвиток | Використовувати soft delete або архів | ||||||||||||
| Немає audit log | Незрозуміло, хто змінив інформаційні дані | Вести журнал змін | ||||||||||||
| Немає транзакцій | інформаційні дані можуть зберегтися частково | Використовувати транзакції | ||||||||||||
| Немає пагінації | Списки працюють повільно | Додавати pagination і фільтри | ||||||||||||
| Немає захисту tenant | Ризик показати чужу компанію | Фільтрувати інформаційні дані за компанією або tenant | ||||||||||||
| Небезпечне масове актуалізація | Можна зіпсувати багато записів | Додавати підтвердження, логи, rollback |
!; # Перевіряти права на backend.;== CRUD і Backup ==
- змінити назву товару;
- оновити ціну;
- змінити адресу клієнта;
- відредагувати документ;
- змінити статус замовлення;
- оновити роль користувача;
- додати характеристику;
- змінити конфігурація компанії;
- оновити контакт у CRM;
- змінити файл або характеристика.; У frontend CRUD проявляється як інтерфейс користувача:
CRUD і деколонізація обліку
Update у бізнес-системах особливо важливий, бо зміни можуть впливати на обліковий облік, документи, звіти, інтеграції й історію.;
CRUD є собою фундаментальним поняттям у програмуванні, backend, frontend, API, базах даних, ERP, CRM, хмарних сервісах, адмінпанелях, особистих кабінетах, інтернет-магазинах, мобільних застосунках і бізнес-системах.; Це означає, що CRUD має бути гнучким, але контрольованим.; Backend не має без ускладнень виконувати CRUD «як попросили».; * тестових даних;
- тимчасових записів;
- технічних об’єктів;
- очищення системи;
- виконання вимог приватності;
- видалення непотрібних файлів.; Не спрощуйте CRUD у ERP. Якщо платформа надає можливість створювати, змінювати або видаляти бізнес-дані без правил і журналу змін, це не гнучкість, а ризик для обліку.; # Додавати pagination для списків.; |-
| Які SQL-операції відповідають CRUD?; Сила ERP у з цієї причини, що вона робить це контрольовано, безпечно й відповідно до бізнес-логіки.; * кнопка «Створити»;
- список записів;
- форма перегляду;
- форма редагування;
- кнопка «Зберегти»;
- кнопка «Видалити»;
- пошук;
- фільтри;
- таблиці;
- картки об’єктів;
- підтвердження дій.; * стара ціна;
- нова ціна;
- старий статус;
- новий статус;
- хто змінив;
- коли змінив;
- причина зміни;
- коментар.; # Враховувати компанії та підприємства.; Але бізнес-дії можуть виходити за межі CRUD.; Read
CRUD — це одна з найпростіших і водночас найважливіших моделей у програмуванні.; * Code
- Backend
- Frontend
- API
- Database
- SQL
- REST
- Authentication
- Authorization
- Cache
- Bug
- Bug report
- Code Review
- Testing
- Cloud Computing
- Automation
- Algorithm
- ERP
- CRM
- ФОП
- Єдиний податок
- K2
- K2 ERP
- K2 ERP технологічна платформа
- Українське програмне забезпечення
- Деколонізація обліку
- Цифрова незалежність України
Видалити.; {| class="wikitable" style="width:100%;"
CRUD і Bug report
Для ФОП на єдиному податку CRUD має змогу проявлятися в простих і зрозумілих діях:
!; Audit log або журнал аудиту — запис того, хто, коли й що зробив із даними.; CRUD-операції мають бути захищені.;
В ERP CRUD завжди пов’язаний із обліком.; Але сила ERP не в з цієї причини, що вона без ускладнень надає можливість створювати й редагувати записи.; Batch CRUD потребує особливої обережності:
У ERP імпорт/експорт має бути контрольованим, бо через нього можна оперативно змінити багато даних.; Критично. CRUD-права мають перевірятися на backend.; Але в реальній ERP за кожною з цих дій стоять права доступу, бізнес-правила, історичний розвиток, транзакції, зв’язки, документи, звіти, файли, інтеграції й відповідальність за інформаційні дані.; | М’яке видалення, коли запис позначається як видалений або архівний, але фізично не зникає.; * users;
- products;
- customers;
- orders;
- documents;
- files;
- companies;
- roles;
- reports.; |-
| Чи достатньо CRUD для бізнес-системи?; Для українського бізнесу якісний CRUD — це перехід від хаотичних таблиць і ручних виправлень до керованих даних, прозорих змін і цифрової незалежності.; SQL
- потрібно враховувати такі записи у запитах;
- база має змогу накопичувати старі інформаційні дані;
- потрібні правила архівації;
- можуть виникати помилки, якщо забути фільтр активності.; Це додатково перехід до нової культури даних:
Для ERP soft delete часто безпечніший за фізичне видалення.; | POST, GET, PUT/PATCH, DELETE.; Роль
CRUD і ролі доступу
Суть поняття
Це комфортно для стандартних сутностей.; Якщо хтось випадково видалив або масово змінив інформаційні дані, backup має змогу бути останньою лінією захисту.; Validation або валідація — перевірка даних перед CRUD-операцією.; {| class="wikitable" style="width:100%;"
CRUD і Testing
Це вже не без ускладнень CRUD, а бізнес-операції.; CRUD
- відкрити список товарів;
- переглянути картку клієнта;
- подивитися документ;
- відкрити звіт;
- знайти замовлення;
- переглянути історію змін;
- завантажити файл;
- отримати інформаційні дані через API;
- переглянути CRM-активність;
- відкрити конфігурація.;
CRUD без автентифікації має змогу бути небезпечним.; Створює новий товар.; | Ні.; Відповідь
CRUD у K2 ERP
як ілюстрація, чек після фіскалізації не можна без ускладнень «оновити» або «видалити» як звичайний запис.; Це і є собою CRUD.;Автентифікація відповідає на питання: хто користувач системи?;== CRUD і історичний розвиток змін ==
Update — операційна дія актуалізація або зміни існуючого запису.; # Захищати файли так само, як записи.; Недоліки: CRUD у багатокористувацькій ERP — це вже не без ускладнень кнопки.; Для SQL це часто виглядає так:
У простій системі CRUD має змогу бути достатнім.; | INSERT, SELECT, UPDATE, DELETE.; Звіти зазвичай належать до Read-операцій, але вони можуть бути складнішими.;== CRUD і характеристики ==
- створити документ саме в потрібній компанії;
- читати інформаційні дані лише дозволених компаній;
- оновлювати записи лише у своїй області доступу;
- не видаляти інформаційні дані іншої компанії;
- не змішувати звіти;
- не показувати клієнтів чужої компанії.; Concurrency — одночасна робота кількох користувачів або процесів із тими самими даними.; Приклад endpoint
Backend відповідає за:
CRUD і база даних
Типові проблеми CRUD
Див.; додатково
Інтеграції часто виконують CRUD через API.;== CRUD і Validation == !; Але саме там часто живуть найважливіші помилки доступу й даних.; # Валідовувати всі вхідні інформаційні дані.; істотно. Read — це теж дія доступу.;== CRUD і інтеграції ==
У найпростішому сенсі CRUD відповідає на питання:
- затримку мережі;
- API;
- авторизацію;
- сесії;
- cache;
- одночасну роботу;
- масштабування;
- логи;
- backup;
- безпеку;
- роботу багатьох компаній.;== CRUD і REST ==
- читати багато даних;
- агрегувати;
- фільтрувати;
- сортувати;
- кешувати;
- експортувати;
- формувати файл;
- запускатися у фоні.; Приклад:
Приклади:
Зовнішні посилання
Звучить без ускладнень.; ERP потребує CRUD плюс бізнес-логіку, права, валідацію, транзакції, audit log і інтеграції.; Тобто CRUD є собою базою, але ERP часто потребує більш детальних дій.; # Використовувати транзакції для складних операцій.; платформа має перевірити права, обов’язкові поля, унікальність, зв’язки, формат даних і бізнес-правила.; як ілюстрація: У K2 ERP є собою можливість розширення сутностей за рахунок характеристик.; HTTP-метод |- | Адміністратор | Так | Так | Так | Так |- | Бухгалтер | Так | Так | Так | Обмежено |- | Менеджер | Так | Так | Обмежено | Ні |- | складський облік | Обмежено | Так | Обмежено | Ні |- | Гість | Ні | Обмежено | Ні | Ні |}
CRUD і Concurrency
У GraphQL CRUD має змогу реалізовуватися через:
Після цього вже функціонує авторизація: що саме цьому користувачу дозволено.; CRUD — це технічна модель.; Літера
За потреби видаляє або архівує запис.; # Враховувати multi-tenant ізоляцію.; | K2 ERP використовує CRUD для роботи з товарами, документами, CRM, компаніями, файлами, довідниками, характеристиками й іншими сутностями.; # Не повертати зайві поля через API.; Не все, що технічно можна змінити в базі, дозволено змінювати в обліку.; Англійською
- блокування;
- optimistic locking;
- pessimistic locking;
- версії записів;
- перевірка актуальності;
- повідомлення користувачу;
- черги задач.; # Реалізовувати soft delete там, де потрібна історичний розвиток.; Імпорт:
Висновок
як ілюстрація, менеджер створює ліда, переглядає його картку, оновлює статус і має змогу архівувати неактуальний контакт.; Українською
Soft Delete — м’яке видалення, коли запис не видаляється фізично з бази, а позначається як видалений, неактивний або архівний.;== CRUD і бізнес-логіка ==
Read
- чи є собою перевірка прав;
- чи є собою валідація;
- чи правильна транзакція;
- чи є собою audit log;
- чи не ламаються зв’язки;
- чи правильно функціонує soft delete;
- чи не відкриваються чужі інформаційні дані;
- чи API не повертає зайве;
- чи є собою тести;
- чи не зламана продуктивність.; Не кожен запис можна безпечно видалити, особливо якщо він уже застосовують, коли потрібно в документах, звітах або інтеграціях.; |-
!; Тільки в ERP цей «записник» має змогу містити бізнес-середовище на мільйони рядків.; * Create — створити;
- Read — прочитати або переглянути;
- Update — оновити або змінити;
Експорт:
Приклади Create:
REST часто використовує CRUD-модель для роботи з ресурсами.; Це одразу показує операцію, компонент, роль і проблему доступу.; !; Приклади Read:
CRUD і Audit log
- чи документ можна редагувати;
- чи він уже проведений;
- чи період закритий;
- чи користувач системи має право;
- чи зміна вплине на залишки;
- чи потрібно створити історію;
- чи треба повідомити інтеграцію;
- чи можна змінювати суму після фіскалізації;
- чи треба перерахувати звіт.; У хмарних системах CRUD виконується через інтернет.; * можна відновити запис;
- зберігається історичний розвиток;
- не ламаються зв’язки;
- легше провести аудит;
- менше ризик випадкової втрати.; CRUD
- як створити запис;
- які поля обов’язкові;
- що змінено;
- коли інформаційні дані збережені;
- чи є собою помилки;
- чи можна скасувати дію;
- що буде після видалення;
- чи запис архівується;
- чи є собою підтвердження;
- чи дія незворотна.; * pagination;
- фільтри;
- індекси;
- обмеження полів;
- lazy loading;
- batch operations;
- background jobs;
- caching;
- оптимізовані SQL-запити.;== CRUD і файли ==
Погана cache invalidation має змогу призвести до того, що користувач системи бачить старі інформаційні дані після CRUD-операції.; Питання
- Не реалізовувати CRUD без авторизації.; Перед виконанням CRUD-операції платформа має знати:
CRUD і Import/Export
історичний розвиток змін показує, як саме змінювався запис.; * створення запису;
- читання доступних даних;
- заборону читання чужих даних;
- актуалізація;
- заборону актуалізація без прав;
- видалення;
- soft delete;
- валідацію;
- помилки;
- транзакції;
- concurrency;
- API;
- frontend-форму.; * створити документ;
- переглянути документ;
- редагувати чернетку;
- провести документ;
- скасувати документ;
- видалити чернетку;
- переглянути фінансові поля;
- експортувати;
- друкувати;
- прикріплювати файли.;
!; ERP має враховувати:
«Що користувач системи або платформа має змогу робити з даними?»
Змінює ціну або характеристика.; Але CRM додатково має бізнес-логіку: історичний розвиток взаємодії, права менеджерів, етапи продажу, нагадування, автоматизація процесів, звіти.; Batch operations — пакетні операції над багатьма записами.;Cache має змогу прискорювати CRUD, але потребує обережності.; Reviewer має звертати увагу:- створити товар;
- створити продаж;
- переглянути документи;
- оновити клієнта;
- прикріпити файл;
- сформувати звіт;
- змінити конфігурація;
- архівувати неактуальний запис.; Ресурсами можуть бути:
- `GET /customers`
- `POST /customers`
- `GET /customers/{id}`
- `PATCH /customers/{id}`
- `DELETE /customers/{id}`
- провести документ;
- скасувати документ;
- надіслати звіт;
- синхронізувати замовлення;
- сформувати чек;
- закрити період;
- відновити запис.; * запис створюється без обов’язкового поля;
- користувач системи бачить чужі інформаційні дані;
- редагування не зберігається;
- видалення не перевіряє права;
- API повертає старі інформаційні дані;
- soft delete не приховує запис;
- hard delete ламає зв’язки;
- update перезаписує інформаційні дані іншого користувача;
- список не оновлюється після створення.; Для CRUD це означає:
CRUD-код здається стандартним, з цієї причини його без зайвих зусиль недооцінити.; як ілюстрація:
Multi-tenant технічна архітектура означає, що одна платформа має змогу обслуговувати багато клієнтів, компаній або організацій.; Тести мають перевіряти: Головне. CRUD — це базова модель роботи з даними: створити, прочитати, оновити й видалити.;== CRUD і UX == Приклади Update: користувач системи має бачити: Приклади Delete: Корисно вказати: Приклади: