Mi a CRUD? Létrehozás, olvasás, módosítás, törlés magyarázattal
A CRUD a létrehozás, olvasás, módosítás és törlés (create, read, update, delete) rövidítése – a négy alapvető dolog, amit egy app a tárolt adatokkal tesz. Egy új ügyfél felvétele a létrehozás, az ügyféllista megtekintése az olvasás, a telefonszámának megváltoztatása a módosítás, az eltávolítása pedig a törlés. A legtöbb üzleti app – CRM-ek, foglalási rendszerek, készletkövetők, adminisztrációs felületek – nagyrészt CRUD, jó elrendezéssel és szabályokkal kiegészítve.
Miért fontos, ha AI-val építesz
A CRUD az a szókincs, amely egy homályos appötletet pontos kéréssé alakít. Az „app a beszállítóink kezelésére” ötlete az AI-t találgatásra készteti. A „beszállítók létrehozása, listázása, szerkesztése és törlése, ezekkel a mezőkkel” pontosan megmondja, mely képernyőket, adatbázis-műveleteket és szerveroldali útvonalakat kell megépíteni.
Tesztelési ellenőrzőlistát is ad. Az appod minden rekordtípusához feltehetsz négy kérdést: hozzáadhatok-e egyet, láthatom-e őket, módosíthatok-e egyet, és törölhetek-e egyet – és csak a megfelelő emberek tehetik-e ezeket? Meglepően sok AI-val épített app tud rekordot létrehozni, de nem tud szerkeszteni, vagy bárki bármit törölhet.
Mindennapi hasonlat: a receptkártyás doboz
Képzelj el egy doboznyi receptkártyát egy konyhapolcon.
- Létrehozás: írj egy új kártyát, és tedd el.
- Olvasás: lapozgasd a dobozt, vagy húzd ki a lasagne receptjét.
- Módosítás: húzd át a „20 dkg sajt” sort, és írd fölé: „25 dkg”.
- Törlés: vegyél ki egy kártyát, és dobd ki.
Most adj hozzá szabályokat: csak a főszakács dobhat ki kártyákat, minden kártyának kell címet kapnia, és senki nem tehet el két ugyanolyan nevű kártyát. Ez egy CRUD-app validációval és jogosultságokkal – a legtöbb valódi app pont ilyen.
Hogyan jelenik meg a CRUD minden rétegben
Minden művelet megjelenik a képernyőn, a szerveren és az adatbázisban. Ha egymás mellé tesszük őket, sokat megmagyaráz abból, hogyan épülnek az appok.
| Művelet | A képernyőn | API-kérés (REST) | SQL az adatbázisban |
|---|---|---|---|
| Létrehozás | Egy „Új” gomb és egy űrlap | POST /api/suppliers | INSERT |
| Olvasás | Lista kereséssel és szűrőkkel; részletes oldal | GET /api/suppliers és GET /api/suppliers/42 | SELECT |
| Módosítás | Egy „Szerkesztés” űrlap vagy sori szerkesztés | PUT vagy PATCH /api/suppliers/42 | UPDATE |
| Törlés | Egy „Törlés” gomb megerősítéssel | DELETE /api/suppliers/42 | DELETE (vagy a sor törölt jelölése) |
A képernyő a frontend, az API-kérés az, ahogyan a frontend beszél a backenddel, az SQL pedig az, ahogyan a backend beszél az adatbázissal. Ha ezek a szavak újak, lásd mi az API és mi az adatbázis.
Példa: egy eszközkölcsönző nyilvántartó
Egy iskola médiatanszéke kameráit és mikrofonjait kölcsönzi a diákoknak, és folyton elveszítik a nyomukat. Egy egyszerű appot szeretnének.
A rekordok. Kétféle dolog: eszközök (név, típus, sorozatszám, állapot) és kölcsönzések (melyik eszköz, melyik diák, kiadás dátuma, határidő, visszahozás dátuma).
CRUD az eszközökre:
- Létrehozás: a munkatársak új kamerát vesznek fel a sorozatszámával. Szabály: a sorozatszámok egyediek.
- Olvasás: az összes eszköz listája, szűrhető típus és „most elérhető” szerint; egy részletes oldal, amely egy eszköz kölcsönzési előzményeit mutatja.
- Módosítás: az állapot megváltoztatása „javításra szorul”-ra.
- Törlés: általában nem valódi törlés. Ha egy 30 korábbi kölcsönzéssel rendelkező kamerát törölnének, azok a kölcsönzési rekordok elveszítenék a kapcsolatot. Ehelyett „kivont” állapotba kell tenni, így eltűnik az elérhető listából, de az előzményei megmaradnak. Ezt hívjuk puha törlésnek (soft delete).
CRUD a kölcsönzésekre:
- Létrehozás: egy eszköz kiadása egy diáknak. Szabály: nem lehet kiadni olyan eszközt, amely már kölcsönben van.
- Olvasás: „lejárt kölcsönzések” – egy lista, ahol a határidő elmúlt, és nincs visszahozási dátum.
- Módosítás: a visszahozás dátumának rögzítése, amikor az eszköz visszajön.
- Törlés: csak munkatársak, téves bejegyzésű kölcsönzéseknél.
Jogosultságok. A diákok olvashatják, mi érhető el; csak a munkatársak hozhatnak létre, módosíthatnak vagy törölhetnek. Ezek az ellenőrzések a szerveren futnak, nem csak a gombok elrejtésével.
Ez az egész app. Az érdekes részek – a dupla kölcsönzés megakadályozása, a lejárt lista, eszközönkénti előzmények – szabályok és lekérdezések a sima CRUD-on.
Kulcsfogalmak
- Rekord (sor): egy elem, például egy beszállító vagy egy kölcsönzés.
- Entitás / erőforrás: egy rekordtípus, például a „beszállítók”. Általában saját táblát és saját CRUD-képernyőket kap.
- Validáció: a bemenet ellenőrzése – kötelező mezők, érvényes e-mail, pozitív mennyiség. Kényelemből az űrlapban, biztonságból a szerveren is csináld.
- Puha törlés: egy rekord törölt vagy archivált jelölése a végleges eltávolítás helyett, hogy az előzmények és a kapcsolatok megmaradjanak.
- Lapozás (pagináció): egy hosszú lista oldalanként való megjelenítése, hogy az app gyors maradjon.
- Audit napló: nyilvántartás arról, ki mit hozott létre, módosított vagy törölt, és mikor.
- Adminisztrációs felület: CRUD-képernyők egy csoportja, amellyel a munkatársak kezelik az app adatait.
Gyakori hibák és tévhitek
- A négy közül egy kihagyása. Az appok gyakran létrehozással és olvasással szállítódnak, de szerkesztés nélkül, így minden elírás törlést és újrabevitelt jelent. Minden entitásnál ellenőrizd mind a négyet.
- Törlések, amelyek elrontanak dolgokat. Egy számlákkal rendelkező ügyfél törlése árva számlákat hagyhat, vagy eltüntetheti az előzményeket. Entitásonként döntsd el: tiltsd a törlést, legyen puha törlés, vagy töröld a kapcsolódó rekordokat is.
- Jogosultság csak a felületen. A Törlés gomb elrejtése nem akadályozza meg, hogy valaki elküldje a
DELETEkérést. A szervernek kell ellenőriznie, ki kéri. - Azonosító alapján módosítás tulajdonjog-ellenőrzés nélkül. Ha az A felhasználó az URL számának átírásával szerkesztheti a
/api/notes/42jegyzetet, előfordulhat, hogy a B felhasználó jegyzetét szerkeszti. Minden módosításnak és törlésnek meg kell erősítenie, hogy a rekord a kérelmezőé. - Nincs megerősítés törlésnél. Egyetlen téves koppintás ne pusztítson el adatot. Kérj megerősítő lépést, vagy visszavonási lehetőséget.
- „A CRUD egyszerű, tehát nem éri meg megépíteni.” Sok értékes termék CRUD-app, amely jobban illeszkedik egy munkafolyamathoz, mint egy általános eszköz.
Mit kérj az AI-építőtől
Ezt a mintát használd minden entitásra, egyenként:
Építs egy beszállítók funkciót listával, létrehozással, szerkesztéssel és törléssel. Mezők: név (kötelező), kapcsolattartó e-mail (érvényes e-mail), telefon, kategória (ezek egyike: élelmiszer, csomagolás, tisztítószer), megjegyzések. Listanézet, keresés név szerint és szűrés kategóriára, oldalanként 20. Törlés előtt erősítsd meg; ha a beszállítónak vannak rendelései, archiváld a törlés helyett. Csak a bejelentkezett munkatársak hozhatnak létre, szerkeszthetnek vagy archiválhatnak – ezt a szerveren érvényesítsd.
Utána teszteld mind a négy műveletet, egy jogosult felhasználóként és valakiként, aki nem férhet hozzá. Miután egy entitás működik, adj hozzá a következőt. A belső eszköz készítése bemutatja, hogyan válnak a CRUD-képernyők teljes adminisztrációs appá, a mi a Postgres pedig elmagyarázza azt az adatbázist, amelyen a legtöbb ilyen app fut.
CRUD-appok a Mythexen
A CRUD-appok egyike azoknak a dolgoknak, amelyekben az AI-appépítők a legjobbak, és ez alól a Mythex sem kivétel. Kérd a chatben az entitást és a mezőit, a Mythex pedig egy Postgres-adatbázist csatol a projekthez, létrehozza a táblát, és megépíti a lista-, űrlap- és részletes képernyőket egy élő előnézetben; ezután a /test paranccsal ellenőrizheted a folyamatot. A dokumentációban van egy CRUD-app recept kezdő prompttal, a belső eszköz készítő és a műszerfal-sablonok pedig jó kiindulópontok.
Kérdések
Mit jelent a CRUD?
A CRUD a létrehozás (create), olvasás (read), módosítás (update) és törlés (delete) rövidítése: új rekord hozzáadása, rekordok megtekintése, egy rekord módosítása és eltávolítása. Szinte minden adatot tároló app ebből a négy műveletből épül fel.
Mi az a CRUD-app?
A CRUD-app olyan app, amelynek fő feladata a rekordok kezelése űrlapokon, listákon és részletes oldalakon keresztül, például egy CRM, egy készletkövető, egy foglalási adminisztráció vagy egy állásportál háttérrendszere. A legtöbb belső eszköz és adminisztrációs felület CRUD-app.
Hogyan kapcsolódik a CRUD a REST API-khoz?
Egy tipikus REST API-ban a létrehozás POST kérést, az olvasás GET kérést, a módosítás PUT vagy PATCH kérést, a törlés DELETE kérést használ. A backend ezután a megfelelő adatbázis-műveletet futtatja: INSERT, SELECT, UPDATE vagy DELETE.
Túl egyszerű egy CRUD-app ahhoz, hogy értékes legyen?
Nem. Sok hasznos üzleti szoftver CRUD, jó szabályokkal, jogosultságokkal és riportokkal kiegészítve. Az érték abban van, hogy jól modellezi az adatokat és illeszkedik a munkafolyamathoz, nem egy szokatlan technológiában.