Kas ir CRUD? Izveidot, lasīt, atjaunināt, dzēst izskaidrots
CRUD nozīmē create, read, update un delete — četras pamata lietas, ko lietotne dara ar saglabātiem datiem. Jauna klienta pievienošana ir create, klientu saraksta skatīšana ir read, viņa tālruņa numura maiņa ir update, bet viņa noņemšana ir delete. Lielākā daļa biznesa lietotņu — CRM, rezervāciju sistēmu, inventāra uzskaites rīku, administrēšanas paneļu — ir būtībā CRUD ar noteikumiem un labu izkārtojumu virsū.
Kāpēc tas ir svarīgi, veidojot ar MI
CRUD ir vārdnīca, kas vāgu lietotnes ideju pārvērš precīzā pieprasījumā. „Lietotne mūsu piegādātāju pārvaldīšanai” liek MI minēt. „Izveidot, parādīt, rediģēt un dzēst piegādātājus ar šiem laukiem” tieši norāda, kurus ekrānus, datubāzes darbības un servera maršrutus veidot.
Tas arī dod pārbaudes sarakstu testēšanai. Katram ieraksta veidam savā lietotnē varat uzdot četrus jautājumus: vai var pievienot vienu, redzēt tos, mainīt vienu un noņemt vienu — un vai katru šo darbību drīkst veikt tikai pareizie cilvēki? Pārsteidzoši daudzas MI veidotas lietotnes var izveidot ierakstus, bet nevar tos labot, vai ļauj ikvienam dzēst jebko.
Ikdienas salīdzinājums: receptu kartīšu kaste
Iedomājieties virtuves plauktā kastīti ar receptu kartītēm.
- Create: uzrakstīt jaunu kartīti un ieliekt to kastē.
- Read: pārlapot kastīti vai izvilkt to, kas paredzēta lazanjai.
- Update: izsvītrot „200 g siera” un uzrakstīt „250 g”.
- Delete: izņemt kartīti un izmest.
Tagad pievienojiet noteikumus: tikai galvenais pavārs drīkst izmest kartītes, katrai kartītei jābūt nosaukumam un neviens nevar ieliekt divas kartītes ar vienu un to pašu nosaukumu. Tā ir CRUD lietotne ar validāciju un atļaujām — tieši tādas ir lielākā daļa reālu lietotņu.
Kā CRUD parādās katrā slānī
Katra darbība parādās ekrānā, serverī un datubāzē. Ja tās redzat blakus, daudz kas par lietotņu veidošanu kļūst skaidrs.
| Darbība | Ekrānā | API pieprasījums (REST) | SQL datubāzē |
|---|---|---|---|
| Create | Poga „Jauns” un veidlapa | POST /api/suppliers | INSERT |
| Read | Saraksts ar meklēšanu un filtriem; detalizēta lapa | GET /api/suppliers un GET /api/suppliers/42 | SELECT |
| Update | Veidlapa „Rediģēt” vai rediģēšana vietnē | PUT vai PATCH /api/suppliers/42 | UPDATE |
| Delete | Poga „Dzēst” ar apstiprinājumu | DELETE /api/suppliers/42 | DELETE (vai ieraksta atzīmēšana kā dzēsta) |
Ekrāns ir frontend, API pieprasījums ir veids, kā frontend sazinās ar backend, un SQL ir veids, kā backend sazinās ar datubāzi. Ja šie vārdi ir jauni, skatiet kas ir API un kas ir datubāze.
Praktisks piemērs: aprīkojuma aizņemšanās uzskaites rīks
Skolas mediju nodaļa izsniedz studentiem kameras un mikrofonus un pastāvīgi zaudē to uzskaiti. Viņi vēlas vienkāršu lietotni.
Ieraksti. Divi veidi: aprīkojums (nosaukums, tips, sērijas numurs, stāvoklis) un aizņemšanās (kāds aprīkojums, kurš students, izsniegšanas datums, termiņš, atgriešanas datums).
CRUD aprīkojumam:
- Create: darbinieki pievieno jaunu kameru ar tās sērijas numuru. Noteikums: sērijas numuriem jābūt unikāliem.
- Read: visa aprīkojuma saraksts, ko var filtrēt pēc tipa un pēc „pieejams tagad”; detalizēta lapa, kas parāda vienas vienības aizņemšanās vēsturi.
- Update: mainīt stāvokli uz „nepieciešams remonts”.
- Delete: parasti nē īsta dzēšana. Ja kamera ar 30 iepriekšējām aizņemšanās reizēm tiek dzēsta, šo aizņemšanos ieraksti zaudē saiti. Tā vietā atzīmējiet to kā „izņemtu no apgrozības”, lai tā pazustu no pieejamo saraksta, bet vēsture paliktu. To sauc par mīksto dzēšanu (soft delete).
CRUD aizņemšanām:
- Create: izsniegt vienību studentam. Noteikums: nevar izsniegt vienību, kas jau ir aizņemta.
- Read: „nokavētās aizņemšanās” — saraksts, kur termiņš ir pagājis un atgriešanas datums nav ievadīts.
- Update: ierakstīt atgriešanas datumu, kad vienība atgriezta.
- Delete: tikai darbiniekiem, kļūdaini ievadītām aizņemšanām.
Atļaujas. Studenti var lasīt, kas ir pieejams; izveidot, atjaunināt vai dzēst drīkst tikai darbinieki. Šīs pārbaudes notiek serverī, nevis tikai paslēpjot pogas.
Tas ir viss lietotnes saturs. Interesantās daļas — bez dubultas izsniegšanas, nokavēto sarakstu, vēsturi katrai vienībai — ir noteikumi un vaicājumi virs vienkārša CRUD.
Galvenie termini
- Ieraksts (rinda): viena vienība, piemēram, viens piegādātājs vai viena aizņemšana.
- Entītija / resurss: ieraksta veids, piemēram, „piegādātāji”. Katram parasti ir sava tabula un sava CRUD ekrānu kopa.
- Validācija: ievades pārbaudes — obligāti lauki, derīgs e-pasts, pozitīvs daudzums. Veiciet to veidlapā ērtībai un serverī drošībai.
- Mīkstā dzēšana (soft delete): ieraksta atzīmēšana kā dzēsta vai arhivēta, nevis noņemšana, lai vēsture un saites saglabātos.
- Lappušu dalīšana (pagination): garu saraksta rādīšana pa lapām, lai lietotne paliktu ātra.
- Audita žurnāls: ieraksts par to, kas, ko un kad izveidoja, mainīja vai dzēsa.
- Administrēšanas panelis: CRUD ekrānu kopa darbiniekiem, lai pārvaldītu lietotnes datus.
Biežākās kļūdas un maldi
- Kāda no četrām darbībām tiek aizmirsta. Lietotnes bieži tiek nodotas ar izveidi un lasīšanu, bet bez rediģēšanas, tāpēc katra drukas kļūda nozīmē dzēst un ievadīt no jauna. Pārbaudiet visas četras katrai entītijai.
- Dzēšana, kas sabojā lietas. Klienta dzēšana, kuram ir rēķini, var atstāt bārenrēķinus vai izdzēst vēsturi. Lemiet katrai entītijai: aizliegt dzēšanu, veikt mīksto dzēšanu vai dzēst arī saistītos ierakstus.
- Atļaujas tikai saskarnē. Dzēšanas pogas paslēpšana neaptur to, ka kāds nosūta
DELETEpieprasījumu. Serverim jāpārbauda, kas pieprasa. - Atjaunināšana pēc ID bez īpašuma pārbaudes. Ja lietotājs A var labot
/api/notes/42, mainot ciparu URL, viņš var labot lietotāja B piezīmi. Katrai atjaunināšanai un dzēšanai jāpārbauda, vai ieraksts pieder pieprasītājam. - Nav apstiprinājuma dzēšanai. Viens kļūdains klikšķis nedrīkst iznīcināt datus. Pieprasiet apstiprinājuma soli vai atsaukšanas iespēju.
- „CRUD nozīmē vienkāršu, tāpēc nav vērts to veidot.” Daudzi vērtīgi produkti ir CRUD lietotnes, kas darbplūsmai der labāk nekā vispārīgs rīks.
Ko lūgt savam MI veidotājam
Izmantojiet šo rakstu katrai entītijai, pa vienai:
Izveido piegādātāju funkciju ar sarakstu, izveidi, rediģēšanu un dzēšanu. Lauki: nosaukums (obligāts), kontakta e-pasts (derīgs e-pasts), tālrunis, kategorija (viena no: pārtika, iepakojums, tīrīšana), piezīmes. Saraksta skatā meklēšana pēc nosaukuma un filtrs pēc kategorijas, 20 vienā lapā. Pirms dzēšanas apstiprināt; ja piegādātājam ir pasūtījumi, arhivēt, nevis dzēst. Veidot, rediģēt vai arhivēt drīkst tikai pieteikušies darbinieki — nodrošini to serverī.
Pēc tam pārbaudiet visas četras darbības — kā atļauts lietotājs un kā kāds, kam piekļuves nevajadzētu būt. Kad viena entītija strādā, pievienojiet nākamo. Kā veidot iekšējo rīku parāda, kā CRUD ekrāni kļūst par pilnu administrēšanas lietotni, un kas ir Postgres izskaidro datubāzi, uz kuras balstās lielākā daļa šo lietotņu.
CRUD lietotnes Mythex
CRUD lietotnes ir viena no lietām, ko MI lietotņu veidotāji dara vislabāk, un Mythex nav izņēmums. Pajautājiet čatā par entītiju un tās laukiem, un Mythex projektam pievieno Postgres datubāzi, izveido tabulu un izveido saraksta, veidlapas un detalizētās lapas tiešraides priekšskatījumā; pēc tam varat palaist /test, lai pārbaudītu plūsmu. Dokumentācijā ir CRUD lietotnes recepte ar sākuma uzvedni, un iekšējo rīku veidotājs un paneļu veidnes ir labas vietas, kur sākt.
Jautājumi
Ko nozīmē saīsinājums CRUD?
CRUD nozīmē create (izveidot), read (lasīt), update (atjaunināt) un delete (dzēst): pievienot jaunu ierakstu, skatīt ierakstus, mainīt ierakstu un noņemt vienu. Gandrīz katra lietotne, kas glabā datus, ir veidota no šīm četrām darbībām.
Kas ir CRUD lietotne?
CRUD lietotne ir lietotne, kuras galvenais uzdevums ir pārvaldīt ierakstus, izmantojot veidlapas, sarakstus un detalizētas lapas, piemēram, CRM, inventāra uzskaites rīku, rezervāciju administrēšanas paneli vai darba sludinājumu vietni. Lielākā daļa iekšējo rīku un administrēšanas paneļu ir CRUD lietotnes.
Kā CRUD saistās ar REST API?
Tipiskā REST API izveidošanai izmanto POST pieprasījumu, lasīšanai — GET, atjaunināšanai — PUT vai PATCH, bet dzēšanai — DELETE. Serverpuse pēc tam izpilda atbilstošo datubāzes darbību: INSERT, SELECT, UPDATE vai DELETE.
Vai CRUD lietotne ir par vienkāršu, lai būtu vērtīga?
Nē. Daudzi noderīgi biznesa rīki ir CRUD ar labiem noteikumiem, atļaujām un pārskatiem virsū. Vērtība slēpjas labā datu modelēšanā un darbplūsmas pielāgošanā, nevis neparastā tehnoloģijā.