CRUD ምንድን ነው? Create፣ Read፣ Update፣ Delete ማብራሪያ
CRUD ማለት create፣ read፣ update እና delete ነው — መተግበሪያ በተቀመጠ ዳታ ላይ የሚያደርጋቸው አራት መሠረታዊ ነገሮች። አዲስ ደንበኛ መጨመር create ነው፤ የደንበኞችን ዝርዝር ማየት read ነው፤ ስልክ ቁጥራቸውን መቀየር update ነው፤ ማስወገድ delete ነው። አብዛኞቹ የንግድ መተግበሪያዎች — CRMs፣ የቦታ ማስያዣ ሥርዓቶች፣ የክምችት መከታተያዎች፣ admin panels — በአብዛኛው ህጎችና ጥሩ አቀማመጥ ያለው CRUD ናቸው።
በAI ሲገነቡ ለምን አስፈላጊ ነው
CRUD ግልጽ ያልሆነን የመተግበሪያ ሃሳብ ወደ ትክክለኛ ጥያቄ የሚቀይር ቃላት ነው። «አቅራቢዎቻችንን የምናስተዳድርበት መተግበሪያ» ሲባል AI ይገምታል። «አቅራቢዎችን ፍጠር፣ ዝርዝር፣ አርትዕ እና ሰርዝ፣ እነዚህ መስኮች ያሉት» ከተባለ ግን የትኞቹን ስክሪኖች፣ የዳታቤዝ ድርጊቶችና የሰርቨር መንገዶች መገንባት እንዳለበት በትክክል ይነግረዋል።
ለፈተናም ዝርዝር ይሰጥዎታል። ለእያንዳንዱ የመተግበሪያዎ መዝገብ ዓይነት አራት ጥያቄዎችን መጠየቅ ይችላሉ፦ መጨመር እችላለሁ፣ ማየት፣ መቀየርና ማስወገድ እችላለሁ — እና ትክክለኛዎቹ ሰዎች ብቻ እያንዳንዱን ማድረግ ይችላሉ? አስገራሚ ቁጥር በAI የተገነቡ መተግበሪያዎች መዝገቦችን መፍጠር ይችላሉ ግን ማስተካከል አይችሉም፤ ወይም ማንም ማንንም ነገር መሰረዝ ይችላል።
ዕለታዊ ምሳሌ፦ የምግብ አዘገጃጀት ካርዶች ሳጥን
በኩሽና መደርደሪያ ላይ ያለ የምግብ አዘገጃጀት ካርዶች ሳጥን አስቡ።
- 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 (ወይም ረድፉን እንደተሰረዘ ምልክት ማድረግ) |
ስክሪኑ frontend ነው፣ የAPI ጥያቄው frontend ከbackend እንዴት እንደሚነጋገር ነው፣ SQL ደግሞ backend ከዳታቤዙ እንዴት እንደሚነጋገር ነው። እነዚህ ቃላት አዲስ ከሆኑ API ምንድን ነው እና ዳታቤዝ ምንድን ነው ይመልከቱ።
ምሳሌ፦ የመሣሪያ ብድር መከታተያ
የት/ቤት የሚዲያ ክፍል ለተማሪዎች ካሜራዎችና ማይክሮፎኖች ያበድራል፤ እና ያለማቋረጥ መከታተል ያጣሉ። ቀላል መተግበሪያ ይፈልጋሉ።
መዝገቦቹ። ሁለት ዓይነት ነገሮች፦ መሣሪያ (ስም፣ ዓይነት፣ serial ቁጥር፣ ሁኔታ) እና ብድሮች (የትኛው መሣሪያ፣ የትኛው ተማሪ፣ የወጣበት ቀን፣ የሚመለስበት ቀን፣ የተመለሰበት ቀን)።
ለመሣሪያ CRUD፦
- Create፦ ሰራተኞች አዲስ ካሜራ ከserial ቁጥሩ ጋር ይጨምራሉ። ህግ፦ serial ቁጥሮች ልዩ መሆን አለባቸው።
- Read፦ የሁሉም መሣሪያዎች ዝርዝር በዓይነትና «አሁን ይገኛል» በማጣራት የሚቻል፤ የአንድ ዕቃ የብድር ታሪክ የሚያሳይ ዝርዝር ገጽ።
- Update፦ ሁኔታውን ወደ «ጥገና ያስፈልጋል» መቀየር።
- Delete፦ ብዙውን ጊዜ እውነተኛ ስረዛ አይደለም። 30 ያለፉ ብድሮች ያለው ካሜራ ከተሰረዘ፣ እነዚያ የብድር መዝገቦች ግንኙነታቸውን ያጣሉ። ከዚያ ይልቅ «ጡረታ የወጣ» ብለው ምልክት ያድርጉት፤ ስለዚህ ከይገኛል ዝርዝሩ ይጠፋል፣ ታሪኩ ግን ይቀራል። ይህ soft delete ይባላል።
ለብድሮች CRUD፦
- Create፦ ዕቃ ለተማሪ ያስወጡ። ህግ፦ አስቀድሞ በብድር ላይ ያለ ዕቃ ማውጣት አይችሉም።
- Read፦ «ጊዜ ያለፈባቸው ብድሮች» — የመመለሻ ቀኑ ያለፈበትና የመመለሻ ቀን ያልተመዘገበበት ዝርዝር።
- Update፦ ዕቃው ሲመለስ የመመለሻ ቀኑን መመዝገብ።
- Delete፦ በስህተት የገቡ ብድሮች ብቻ፣ ለሰራተኞች ብቻ።
ፈቃዶች። ተማሪዎች የሚገኘውን ማንበብ ይችላሉ፤ ሰራተኞች ብቻ መፍጠር፣ ማስተካከል ወይም መሰረዝ ይችላሉ። እነዚህ ፍተሻዎች በሰርቨሩ ላይ ይሠራሉ፤ አዝራሮችን በመደበቅ ብቻ አይደለም።
ይህ ሙሉ መተግበሪያው ነው። አስደሳች ክፍሎቹ — ሁለት ጊዜ አለማበደር፣ የጊዜ ያለፈባቸው ዝርዝር፣ ለእያንዳንዱ ዕቃ ታሪክ — በመሠረታዊ CRUD ላይ ያሉ ህጎችና ጥያቄዎች ናቸው።
ቁልፍ ቃላት
- Record (row)፦ አንድ ነገር፣ ለምሳሌ አንድ አቅራቢ ወይም አንድ ብድር።
- Entity / resource፦ የመዝገብ ዓይነት፣ ለምሳሌ «አቅራቢዎች»። እያንዳንዱ ብዙ ጊዜ የራሱ ሠንጠረዥና የCRUD ስክሪኖች ስብስብ ያገኛል።
- Validation፦ በግብዓት ላይ ያሉ ፍተሻዎች — የሚያስፈልጉ መስኮች፣ ትክክለኛ ኢሜል፣ አዎንታዊ መጠን። ለምቾት በቅጹ እና ለደህንነት በሰርቨሩ ላይ ያድርጉት።
- Soft delete፦ ታሪክና ግንኙነቶች እንዲቀጥሉ መዝገብን ከማስወገድ ይልቅ እንደተሰረዘ ወይም እንደተቀመጠ ምልክት ማድረግ።
- Pagination፦ ረጅም ዝርዝር በገጽ-በገጽ ማሳየት፤ መተግበሪያው ፈጣን እንዲሆን።
- Audit log፦ ማን ምን እንደፈጠረ፣ እንደቀየረ ወይም እንደሰረዘ እና መቼ የሚመዘግብ ዝርዝር።
- Admin panel፦ ሰራተኞች የመተግበሪያ ዳታ እንዲያስተዳድሩ የCRUD ስክሪኖች ስብስብ።
የተለመዱ ስህተቶችና የተሳሳቱ ግንዛቤዎች
- ከአራቱ አንዱን መርሳት። መተግበሪያዎች ብዙ ጊዜ create እና read ብቻ ይዘው ይላካሉ፤ edit የለም፤ ስለዚህ እያንዳንዱ የፊደል ስህተት ማለት ማጥፋትና እንደገና ማስገባት ማለት ነው። ለእያንዳንዱ entity አራቱንም ይፈትሹ።
- ነገሮችን የሚሰብሩ ስረዛዎች። ደረሰኞች ያሉት ደንበኛ መሰረዝ ያለ ባለቤት ደረሰኞችን ሊተው ወይም ታሪክን ሊያጠፋ ይችላል። ለእያንዳንዱ entity ይወስኑ፦ ስረዛውን ይከልክሉ፣ soft delete ያድርጉ፣ ወይም ተዛማጅ መዝገቦቹንም ይሰርዙ።
- ፈቃዶች በበይነገጹ ላይ ብቻ። የDelete ቁልፍን መደበቅ ማንም
DELETEጥያቄ ከመላክ አያቆመውም። ሰርቨሩ ማን እንደሚጠይቅ መፈተሽ አለበት። - በID ማዘመን ባለቤትነትን ሳይፈትሹ። ተጠቃሚ A
/api/notes/42በURL ውስጥ ቁጥር በመቀየር ማስተካከል ከቻለ፣ የተጠቃሚ B ማስታወሻ ሊያስተካክል ይችላል። እያንዳንዱ update እና delete መዝገቡ የጠያቂው መሆኑን ማረጋገጥ አለበት። - ስረዛ ላይ ማረጋገጫ የለም። አንድ የተሳሳተ ንክኪ ዳታ ማጥፋት የለበትም። የማረጋገጫ ደረጃ ወይም undo ይጠይቁ።
- «CRUD ቀላል ማለት ነው ስለዚህ መገንባት አያስፈልግም።» ብዙ ጠቃሚ ምርቶች ከአጠቃላይ መሣሪያ ይልቅ የሥራ ፍሰትን በተሻለ የሚመጥኑ CRUD መተግበሪያዎች ናቸው።
ለAI መገንቢያዎ ምን ብለው ይጠይቁ
ይህን ንድፍ ለእያንዳንዱ entity፣ አንድ በአንድ ይጠቀሙ፦
አቅራቢዎች ባህሪ ፍጠር ከዝርዝር፣ መፍጠር፣ ማስተካከልና መሰረዝ ጋር። መስኮች፦ ስም (የሚያስፈልግ)፣ የመገኛ ኢሜል (ትክክለኛ ኢሜል)፣ ስልክ፣ ምድብ (ከዚህ አንዱ፦ ምግብ፣ ማሸጊያ፣ ጽዳት)፣ ማስታወሻዎች። የዝርዝር እይታ በስም መፈለግና በምድብ ማጣራት፣ በገጽ 20። ከመሰረዝዎ በፊት ያረጋግጡ፤ አቅራቢው ትዕዛዞች ካሉት ከመሰረዝ ይልቅ ያስቀምጡ (archive)። መፍጠር፣ ማስተካከልና ማስቀመጥ የሚችሉት በመግባት የገቡ ሰራተኞች ብቻ — ይህን በሰርቨሩ ላይ ያስገድዱ።
ከዚያ አራቱንም ድርጊቶች ይሞክሩ፤ እንደተፈቀደለት ተጠቃሚና ማግኘት እንደሌለበት ሰው ሆነው። አንድ entity ሲሠራ ቀጣዩን ይጨምሩ። የውስጥ መሣሪያ እንዴት መገንባት እንደሚቻል የCRUD ስክሪኖች ወደ ሙሉ admin መተግበሪያ እንዴት እንደሚሆኑ ያሳያል፤ Postgres ምንድን ነው ደግሞ አብዛኞቹ እነዚህ መተግበሪያዎች የተቀመጡበትን ዳታቤዝ ያብራራል።
CRUD መተግበሪያዎች በMythex
CRUD መተግበሪያዎች AI መተግበሪያ መገንቢያዎች በጣም ጥሩ ከሚሠሩባቸው ነገሮች አንዱ ናቸው፤ Mythex ከዚህ የተለየ አይደለም። ለመዝገቡና ለመስኮቹ በቻት ይጠይቁ፤ Mythex ከፕሮጀክቱ ጋር Postgres ዳታቤዝ ያያይዛል፣ ሠንጠረዡን ይፈጥራል፣ እና ዝርዝር፣ ቅጽና ዝርዝር ስክሪኖችን በቀጥታ preview ውስጥ ይገነባል፤ ከዚያ ፍሰቱን ለመፈተሽ /test ማሄድ ይችላሉ። ሰነዶቹ ዝግጁ ጥያቄ ያለው CRUD መተግበሪያ ዝግጅት አላቸው፤ እንዲሁም የውስጥ መሣሪያ ገንቢ እና ዳሽቦርድ አብነቶች ለመጀመር ጥሩ ቦታዎች ናቸው።
ጥያቄዎች
CRUD ምን ማለት ነው?
CRUD ማለት create (አዲስ መዝገብ መጨመር)፣ read (መዝገቦችን ማየት)፣ update (መዝገብ መቀየር) እና delete (ማስወገድ) ነው። ዳታ የሚያስቀምጥ ማንኛውም መተግበሪያ ማለት ይቻላል ከእነዚህ አራት ድርጊቶች ይገነባል።
CRUD መተግበሪያ ምንድን ነው?
CRUD መተግበሪያ ዋና ስራው መዝገቦችን በቅጾች፣ ዝርዝሮችና ዝርዝር ገጾች ማስተዳደር የሆነ መተግበሪያ ነው፤ ለምሳሌ CRM፣ የክምችት መከታተያ፣ የቦታ ማስያዣ አስተዳዳሪ ወይም የሥራ ማስታወቂያ ድረ-ገጽ ጀርባ። አብዛኞቹ የውስጥ መሣሪያዎችና admin panels CRUD መተግበሪያዎች ናቸው።
CRUD ከREST APIs ጋር እንዴት ይገናኛል?
በተለመደ REST API create POST ጥያቄ ይጠቀማል፣ read GET ይጠቀማል፣ update PUT ወይም PATCH ይጠቀማል፣ delete DELETE ይጠቀማል። ከዚያ ጀርባው ተዛማጁን የዳታቤዝ ድርጊት ያስኬዳል፦ INSERT፣ SELECT፣ UPDATE ወይም DELETE።
CRUD መተግበሪያ ለዋጋ ቀላል ነው?
አይደለም። ብዙ ጠቃሚ የንግድ ሶፍትዌር ጥሩ ህጎች፣ ፈቃዶችና ሪፖርቶች ያሉት CRUD ነው። ዋጋው ዳታውን በደንብ በመቅረጽና የሥራ ፍሰቱን በማስማማት ላይ ነው፤ ያልተለመደ ቴክኖሎጂ ላይ አይደለም።