Šta je CRUD? Create, Read, Update, Delete objašnjeno
CRUD znači create, read, update i delete: četiri osnovne stvari koje aplikacija radi sa sačuvanim podacima. Dodavanje novog kupca je create, pregled liste kupaca je read, promena njegovog broja telefona je update, a uklanjanje je delete. Većina poslovnih aplikacija, kao što su CRM-ovi, sistemi za rezervacije, praćenje inventara i admin paneli, u velikoj meri je CRUD sa pravilima i dobrim rasporedom iznad.
Zašto je važno kada praviš aplikaciju uz AI
CRUD je rečnik koji pretvara nejasnu ideju aplikacije u precizan zahtev. „Aplikacija za upravljanje dobavljačima“ ostavlja AI-ju da nagađa. „Kreiraj, prikaži, izmeni i obriši dobavljače, sa ovim poljima“ mu tačno govori koje ekrane, operacije nad bazom i serverske rute da napravi.
Takođe ti daje listu za testiranje. Za svaku vrstu zapisa u aplikaciji možeš da postaviš četiri pitanja: mogu li da dodam jedan, da ih vidim, da promenim jedan i da uklonim jedan, i da li to mogu samo prave osobe? Iznenađujuće mnogo aplikacija pravljenih uz AI može da kreira zapise, ali ne i da ih menja, ili dozvoljava svakome da briše bilo šta.
Svakodnevna analogija: kutija sa kartama za recepte
Zamisli kutiju sa kartama za recepte na kuhinjskoj polici.
- Create: napiši novu kartu i odloži je.
- Read: prelistaj kutiju ili izvuci onu za lazanje.
- Update: precrtaj „200 g sira“ i napiši „250 g“.
- Delete: izvadi kartu i baci je.
Sada dodaj pravila: samo šef kuhinje sme da baca karte, svaka karta mora da ima naslov i niko ne može da odloži dve karte sa istim imenom. To je CRUD aplikacija sa validacijom i dozvolama, a upravo su to većina pravih aplikacija.
Kako se CRUD pojavljuje u svakom sloju
Svaka operacija se pojavljuje na ekranu, na serveru i u bazi. Kada ih vidiš jednu pored druge, puno toga postane jasno o tome kako se aplikacije prave.
| Operacija | Na ekranu | REST API zahtev | SQL u bazi |
|---|---|---|---|
| Create | Dugme „Novo“ i forma | POST /api/suppliers | INSERT |
| Read | Lista sa pretragom i filterima; stranica sa detaljima | GET /api/suppliers i GET /api/suppliers/42 | SELECT |
| Update | Forma „Izmeni“ ili izmena u samom redu | PUT ili PATCH /api/suppliers/42 | UPDATE |
| Delete | Dugme „Obriši“ sa potvrdom | DELETE /api/suppliers/42 | DELETE (ili označavanje reda kao obrisanog) |
Ekran je frontend, API zahtev je način na koji frontend razgovara sa backendom, a SQL je način na koji backend razgovara sa bazom. Ako su ti ti pojmovi novi, pogledaj šta je API i šta je baza podataka.
Praktičan primer: praćenje pozajmljene opreme
Školski odsek za medije pozajmljuje kamere i mikrofone učenicima i stalno gubi trag o njima. Žele jednostavnu aplikaciju.
Zapisi. Dve vrste stvari: oprema (naziv, tip, serijski broj, stanje) i zaduženja (koja oprema, koji učenik, datum izdavanja, rok vraćanja, datum vraćanja).
CRUD za opremu:
- Create: osoblje dodaje novu kameru sa serijskim brojem. Pravilo: serijski brojevi moraju biti jedinstveni.
- Read: lista sve opreme, koja se filtrira po tipu i po „dostupno sada“; stranica sa detaljima koja pokazuje istoriju zaduženja jednog uređaja.
- Update: promena stanja u „potrebna popravka“.
- Delete: obično ne pravo brisanje. Ako se kamera sa 30 prethodnih zaduženja obriše, zapisi o zaduženjima gube vezu. Umesto toga, označi je kao „povučena“, pa nestaje sa liste dostupnih, ali istorija ostaje. To se zove meko brisanje (soft delete).
CRUD za zaduženja:
- Create: zaduži uređaj učeniku. Pravilo: ne možeš zadužiti uređaj koji je već zadužen.
- Read: lista „zakasnelih zaduženja“, gde je rok prošao i nema datuma vraćanja.
- Update: upiši datum vraćanja kada se uređaj vrati.
- Delete: samo osoblje, za zaduženja unesena greškom.
Dozvole. Učenici mogu da čitaju šta je dostupno; samo osoblje može da kreira, menja ili briše. Ove provere rade na serveru, a ne samo sakrivanjem dugmadi.
To je cela aplikacija. Zanimljivi delovi, poput sprečavanja dvostrukog zaduživanja, liste zakasnelih i istorije po uređaju, jesu pravila i upiti iznad čistog CRUD-a.
Ključni pojmovi
- Zapis (red): jedna stavka, na primer jedan dobavljač ili jedno zaduženje.
- Entitet / resurs: vrsta zapisa, na primer „dobavljači“. Svaki obično dobija svoju tabelu i svoj skup CRUD ekrana.
- Validacija: provere unosa, kao što su obavezna polja, ispravna imejl adresa ili pozitivna količina. Radi to u formi radi udobnosti i na serveru radi bezbednosti.
- Meko brisanje (soft delete): označavanje zapisa kao obrisanog ili arhiviranog umesto uklanjanja, da istorija i veze opstanu.
- Paginacija: prikazivanje duge liste po stranicu, da aplikacija ostane brza.
- Dnevnik izmena (audit log): zapis o tome ko je šta kreirao, menjao ili brisao i kada.
- Admin panel: skup CRUD ekrana za osoblje da upravlja podacima aplikacije.
Česte greške i zablude
- Zaboravljanje jedne od četiri operacije. Aplikacije često stignu sa kreiranjem i čitanjem, ali bez izmene, pa svaka greška u kucanju znači brisanje i ponovni unos. Proveri sve četiri za svaki entitet.
- Brisanja koja kvare stvari. Brisanje kupca koji ima fakture može da ostavi siročad fakture ili obriše istoriju. Odluči za svaki entitet: blokiraj brisanje, meko obriši ili obriši i povezane zapise.
- Dozvole samo u interfejsu. Sakrivanje dugmeta Obriši ne sprečava nekog da pošalje
DELETEzahtev. Server mora da proveri ko pita. - Izmena po ID-ju bez provere vlasništva. Ako korisnik A može da menja
/api/notes/42promenom broja u URL-u, može da menja belešku korisnika B. Svaka izmena i brisanje moraju da potvrde da zapis pripada tražiocu. - Bez potvrde pri brisanju. Jedan pogrešan klik ne bi trebalo da uništi podatke. Traži korak potvrde ili opciju poništavanja.
- „CRUD znači osnovno, pa nije vredno praviti.“ Mnogi vredni proizvodi su CRUD aplikacije koje bolje odgovaraju toku rada nego generički alat.
Šta tražiti od svog AI alata
Koristi ovaj obrazac za svaki entitet, jedan po jedan:
Napravi funkciju dobavljači sa listom, kreiranjem, izmenom i brisanjem. Polja: naziv (obavezno), kontakt imejl (ispravan imejl), telefon, kategorija (jedna od: hrana, ambalaža, čišćenje), beleške. Lista sa pretragom po nazivu i filterom po kategoriji, 20 po stranici. Traži potvrdu pre brisanja; ako dobavljač ima porudžbine, arhiviraj umesto brisanja. Samo prijavljeno osoblje može da kreira, menja ili arhivira, i to proveri na serveru.
Zatim testiraj sve četiri operacije, kao dozvoljeni korisnik i kao neko ko ne bi trebalo da ima pristup. Kada jedan entitet radi, dodaj sledeći. Kako napraviti interni alat pokazuje kako CRUD ekrani postaju pun admin panel, a šta je Postgres objašnjava bazu na kojoj većina tih aplikacija počiva.
CRUD aplikacije na Mythex-u
CRUD aplikacije su jedna od stvari koje AI alati za pravljenje aplikacija najbolje rade, i Mythex nije izuzetak. U chatu zatraži entitet i njegova polja, a Mythex pridružuje Postgres bazu projektu, pravi tabelu i gradi ekrane za listu, formu i detalje u živom pregledu; zatim možeš da pokreneš /test da proveriš tok. Dokumentacija ima recept za CRUD aplikaciju sa početnim promptom, a graditelj internih alata i šabloni za kontrolne table su dobra mesta za početak.
Pitanja
Šta znači CRUD?
CRUD znači create, read, update i delete: dodavanje novog zapisa, pregledanje zapisa, izmena zapisa i uklanjanje zapisa. Gotovo svaka aplikacija koja čuva podatke sastavljena je od ove četiri operacije.
Šta je CRUD aplikacija?
CRUD aplikacija je aplikacija čiji je glavni posao upravljanje zapisima kroz forme, liste i stranice sa detaljima, kao što su CRM, praćenje inventara, administracija rezervacija ili sajt za oglase za posao. Većina internih alata i admin panela su CRUD aplikacije.
Kako je CRUD povezan sa REST API-jima?
U tipičnom REST API-ju, create koristi POST zahtev, read koristi GET, update koristi PUT ili PATCH, a delete koristi DELETE. Backend zatim izvršava odgovarajuću operaciju nad bazom: INSERT, SELECT, UPDATE ili DELETE.
Da li je CRUD aplikacija previše jednostavna da bi bila vredna?
Nije. Mnogo korisnog poslovnog softvera je CRUD sa dobrim pravilima, dozvolama i izveštajima iznad. Vrednost je u dobrom modelovanju podataka i prilagođavanju toku rada, a ne u neobičnoj tehnologiji.