CRUD کیا ہے؟ Create، Read، Update، Delete کی وضاحت
CRUD کا مطلب ہے create، read، update اور delete، یعنی وہ چار بنیادی کام جو ایک ایپ محفوظ ڈیٹا کے ساتھ کرتی ہے۔ نیا گاہک شامل کرنا create ہے، گاہکوں کی فہرست دیکھنا read ہے، ان کا فون نمبر بدلنا update ہے، اور انہیں ہٹانا delete ہے۔ زیادہ تر کاروباری ایپس، جیسے CRMs، بکنگ سسٹم، انوینٹری ٹریکرز اور ایڈمن پینلز، بڑی حد تک CRUD ہوتی ہیں جن کے اوپر قواعد اور اچھا لے آؤٹ ہوتا ہے۔
AI سے بنانے میں یہ کیوں اہم ہے
CRUD وہ ذخیرۂ الفاظ ہے جو ایک مبہم ایپ کے خیال کو درست درخواست میں بدل دیتا ہے۔ “ہمارے سپلائرز کو منظم کرنے کے لیے ایک ایپ” سے AI کو اندازہ لگانا پڑتا ہے۔ “سپلائرز بناؤ، فہرست دکھاؤ، ترمیم کرو اور حذف کرو، ان فیلڈز کے ساتھ” اسے بتاتا ہے کہ کون سی اسکرینیں، ڈیٹابیس کارروائیاں اور سرور روٹس بنانے ہیں۔
یہ جانچ کی ایک چیک لسٹ بھی دیتا ہے۔ ہر قسم کے ریکارڈ کے لیے آپ چار سوال پوچھ سکتے ہیں: کیا میں ایک بنا سکتا ہوں، انہیں دیکھ سکتا ہوں، ایک کو بدل سکتا ہوں، اور ایک کو ہٹا سکتا ہوں، اور کیا صرف درست لوگ ہر ایک کر سکتے ہیں؟ AI سے بنی ایپس کی ایک حیران کن تعداد میں ریکارڈ بن سکتے ہیں مگر بدلے نہیں جا سکتے، یا کوئی بھی کچھ بھی حذف کر سکتا ہے۔
روزمرہ کی ایک مثال: ریسیپی کارڈز کا ڈبہ
کچن کی شیلف پر رکھے ریسیپی کارڈز کے ڈبے کا تصور کریں۔
- Create: نیا کارڈ لکھنا اور اسے ڈبے میں رکھنا۔
- Read: ڈبے میں کارڈز دیکھنا، یا لازانیہ کا کارڈ نکالنا۔
- Update: “200 گرام پنیر” کو کاٹ کر “250 گرام” لکھنا۔
- Delete: کارڈ نکال کر پھینک دینا۔
اب اس میں قواعد شامل کریں: صرف ہیڈ شیف کارڈز پھینک سکتا ہے، ہر کارڈ کا عنوان لازمی ہے، اور کوئی دو کارڈز ایک ہی نام سے نہیں رکھ سکتا۔ یہ توثیق (validation) اور اجازتوں والی CRUD ایپ ہے، اور زیادہ تر حقیقی ایپس یہی ہوتی ہیں۔
CRUD ہر تہہ میں کیسے نظر آتا ہے
ہر کارروائی اسکرین، سرور اور ڈیٹابیس میں ظاہر ہوتی ہے۔ انہیں ایک ساتھ دیکھنے سے ایپس کے بنانے کے طریقے کی کافی سمجھ آ جاتی ہے۔
| کارروائی | اسکرین پر | API درخواست (REST) | ڈیٹابیس میں SQL |
|---|---|---|---|
| Create | ایک “New” بٹن اور فارم | POST /api/suppliers | INSERT |
| Read | تلاش اور فلٹرز والی فہرست؛ تفصیلی صفحہ | GET /api/suppliers اور GET /api/suppliers/42 | SELECT |
| Update | “Edit” فارم یا لائن پر ترمیم | PUT یا PATCH /api/suppliers/42 | UPDATE |
| Delete | تصدیق کے ساتھ “Delete” بٹن | DELETE /api/suppliers/42 | DELETE (یا قطار کو حذف شدہ نشان زد کرنا) |
اسکرین فرنٹ اینڈ ہے، API درخواست وہ طریقہ ہے جس سے فرنٹ اینڈ بیک اینڈ سے بات کرتا ہے، اور SQL وہ طریقہ ہے جس سے بیک اینڈ ڈیٹابیس سے بات کرتا ہے۔ اگر یہ الفاظ نئے ہیں تو API کیا ہے اور ڈیٹابیس کیا ہے دیکھیں۔
ایک عملی مثال: آلات کی امانت کا ٹریکر
ایک اسکول کا میڈیا شعبہ طلبہ کو کیمرے اور مائیکروفون ادھار دیتا ہے اور ان کا حساب بار بار کھو دیتا ہے۔ انہیں ایک سادہ ایپ چاہیے۔
ریکارڈز۔ دو قسم کی چیزیں: آلات (نام، قسم، سیریل نمبر، حالت) اور قرض (کون سا آلہ، کون سا طالب علم، کب لیا، کب واپس دینا ہے، کب واپس آیا)۔
آلات کے لیے CRUD:
- Create: عملہ ایک نیا کیمرہ اس کے سیریل نمبر کے ساتھ شامل کرتا ہے۔ قاعدہ: سیریل نمبر منفرد ہوں۔
- Read: تمام آلات کی فہرست، جو قسم اور “ابھی دستیاب” کے لحاظ سے فلٹر ہو سکے؛ ایک آلے کا تفصیلی صفحہ جس میں اس کی قرض کی تاریخ ہو۔
- Update: حالت کو “مرمت درکار ہے” میں بدلنا۔
- Delete: عموماً یہ اصلی delete نہیں ہوتا۔ اگر 30 پرانے قرضوں والا کیمرہ حذف ہو جائے تو ان قرض کے ریکارڈز کا تعلق ٹوٹ جاتا ہے۔ اس کی بجائے اسے “ریٹائرڈ” نشان زد کریں تاکہ دستیاب فہرست سے ہٹ جائے مگر اس کی تاریخ باقی رہے۔ اسے soft delete کہتے ہیں۔
قرض کے لیے CRUD:
- Create: ایک آلہ کسی طالب علم کو جاری کرنا۔ قاعدہ: جو آلہ پہلے سے قرض پر ہو وہ جاری نہیں ہو سکتا۔
- Read: “تاخیر شدہ قرض”، یعنی وہ فہرست جہاں واپسی کی تاریخ گزر چکی ہو اور واپسی کی تاریخ درج نہ ہو۔
- Update: آلہ واپس آنے پر واپسی کی تاریخ درج کرنا۔
- Delete: صرف عملہ، غلطی سے درج کیے گئے قرضوں کے لیے۔
اجازتیں۔ طلبہ صرف یہ پڑھ سکتے ہیں کہ کیا دستیاب ہے؛ صرف عملہ create، update یا delete کر سکتا ہے۔ یہ جانچیں سرور پر چلتی ہیں، نہ کہ صرف بٹن چھپا کر۔
بس یہی پوری ایپ ہے۔ دلچسپ حصے، جیسے ایک آلہ دو بار قرض نہ دینا، تاخیر کی فہرست، اور ہر آئٹم کی تاریخ، سادہ CRUD کے اوپر کے قواعد اور کوئریز ہیں۔
اہم اصطلاحات
- ریکارڈ (row): ایک آئٹم، جیسے ایک سپلائر یا ایک قرض۔
- Entity / resource: ریکارڈ کی ایک قسم، جیسے “سپلائرز”۔ ہر ایک کو عموماً اپنا ٹیبل اور CRUD اسکرینز کا اپنا سیٹ ملتا ہے۔
- Validation: ان پٹ کی جانچ، جیسے لازمی فیلڈز، درست ای میل، مثبت مقدار۔ اسے سہولت کے لیے فارم میں اور حفاظت کے لیے سرور پر بھی کریں۔
- Soft delete: ریکارڈ کو مکمل ہٹانے کے بجائے حذف یا محفوظ (archive) نشان زد کرنا، تاکہ تاریخ اور روابط باقی رہیں۔
- Pagination: لمبی فہرست کو ایک وقت میں ایک صفحہ دکھانا، تاکہ ایپ تیز رہے۔
- Audit log: ریکارڈ کہ کس نے کیا بنایا، بدلا یا حذف کیا، اور کب۔
- ایڈمن پینل: عملے کے لیے ایپ کا ڈیٹا منظم کرنے والی CRUD اسکرینز کا سیٹ۔
عام غلطیاں اور غلط فہمیاں
- چاروں میں سے ایک کو بھول جانا۔ ایپس اکثر create اور read کے ساتھ آتی ہیں مگر edit نہیں، اس لیے ہر ٹائپو پر حذف کر کے دوبارہ لکھنا پڑتا ہے۔ ہر entity کے لیے چاروں کو جانچیں۔
- حذف جو چیزیں توڑ دے۔ ایسے گاہک کو حذف کرنا جس کی انوائسز ہوں، انوائسز کو یتیم چھوڑ سکتا ہے یا تاریخ مٹا سکتا ہے۔ ہر entity کے لیے طے کریں: حذف روکیں، soft delete کریں، یا متعلقہ ریکارڈز بھی حذف کریں۔
- اجازتیں صرف انٹرفیس میں۔ Delete بٹن چھپانے سے کوئی شخص
DELETEدرخواست بھیجنے سے نہیں رکتا۔ سرور کو جانچنا ہوگا کہ درخواست کون کر رہا ہے۔ - ID سے اپ ڈیٹ بغیر ملکیت جانچے۔ اگر صارف A URL میں نمبر بدل کر
/api/notes/42میں ترمیم کر سکتا ہے، تو وہ صارف B کا نوٹ بدل سکتا ہے۔ ہر update اور delete کو تصدیق کرنی چاہیے کہ ریکارڈ درخواست کرنے والے کا ہے۔ - حذف پر تصدیق نہ ہونا۔ ایک غلط کلک سے ڈیٹا تباہ نہیں ہونا چاہیے۔ تصدیق کا مرحلہ یا undo رکھیں۔
- “CRUD بنیادی ہے، اس پر محنت کرنا فائدہ مند نہیں۔” بہت سی قیمتی مصنوعات CRUD ایپس ہیں جو کسی ورک فلو کو عام ٹول سے بہتر فٹ کرتی ہیں۔
اپنے AI بلڈر سے کیا مانگیں
ہر entity کے لیے، ایک ایک کر کے، یہ انداز استعمال کریں:
suppliers کا ایک فیچر بناؤ جس میں فہرست، create، edit اور delete ہو۔ فیلڈز: name (لازمی)، contact email (درست ای میل)، phone، category (ان میں سے ایک: food، packaging، cleaning)، notes۔ نام سے تلاش اور category سے فلٹر کے ساتھ فہرست، ہر صفحے پر 20۔ حذف سے پہلے تصدیق کرو؛ اگر کسی سپلائر کے آرڈرز ہوں تو حذف کرنے کے بجائے archive کرو۔ صرف لاگ اِن عملہ create، edit یا archive کر سکے — یہ سرور پر نافذ کرو۔
پھر چاروں کارروائیاں اس صارف کے ساتھ جانچیں جسے اجازت ہو، اور اس کے ساتھ بھی جسے نہ ہو۔ ایک entity کام کرنے لگے تو اگلی شامل کریں۔ اندرونی ٹول کیسے بنائیں دکھاتا ہے کہ CRUD اسکرینیں مکمل ایڈمن ایپ کیسے بنتی ہیں، اور Postgres کیا ہے وہ ڈیٹابیس سمجھاتا ہے جس پر زیادہ تر ایسی ایپس کھڑی ہوتی ہیں۔
Mythex پر CRUD ایپس
CRUD ایپس ان چیزوں میں سے ہیں جو AI ایپ بلڈرز سب سے بہتر کرتے ہیں، اور Mythex بھی اس سے مستثنیٰ نہیں۔ چیٹ میں entity اور اس کے فیلڈز بتائیں، اور Mythex پروجیکٹ کے ساتھ ایک Postgres ڈیٹابیس جوڑتا ہے، ٹیبل بناتا ہے، اور لائیو پریویو میں فہرست، فارم اور تفصیلی اسکرینیں تیار کرتا ہے؛ پھر آپ اس فلو کو جانچنے کے لیے /test چلا سکتے ہیں۔ docs میں ایک CRUD ایپ ریسیپی ہے جس میں شروعاتی پرامپٹ ہے، اور اندرونی ٹول بلڈر اور ڈیش بورڈ ٹیمپلیٹس شروع کرنے کی اچھی جگہیں ہیں۔
سوالات
CRUD کا مطلب کیا ہے؟
CRUD کا مطلب ہے create، read، update اور delete: نیا ریکارڈ شامل کرنا، ریکارڈز دیکھنا، کسی ریکارڈ کو بدلنا، اور اسے ہٹانا۔ ڈیٹا محفوظ کرنے والی تقریباً ہر ایپ انہی چار کارروائیوں سے بنتی ہے۔
CRUD ایپ کیا ہے؟
CRUD ایپ وہ ایپ ہے جس کا بنیادی کام فارمز، فہرستوں اور تفصیلی صفحات کے ذریعے ریکارڈز کا انتظام کرنا ہو، جیسے CRM، انوینٹری ٹریکر، بکنگ ایڈمن یا جاب بورڈ کا بیک آفس۔ زیادہ تر اندرونی ٹولز اور ایڈمن پینلز CRUD ایپس ہوتے ہیں۔
CRUD کا REST APIs سے کیا تعلق ہے؟
عام REST API میں create کے لیے POST درخواست، read کے لیے GET، update کے لیے PUT یا PATCH، اور delete کے لیے DELETE استعمال ہوتی ہے۔ پھر بیک اینڈ متعلقہ ڈیٹابیس کارروائی چلاتا ہے: INSERT، SELECT، UPDATE یا DELETE۔
کیا CRUD ایپ اتنی سادہ ہے کہ قیمتی نہ ہو؟
نہیں۔ بہت سا مفید کاروباری سافٹ ویئر CRUD ہوتا ہے جس پر اچھے اصول، اجازتیں اور رپورٹس ہوں۔ قدر ڈیٹا کی اچھی ماڈلنگ اور ورک فلو کے مطابق ہونے میں ہے، غیر معمولی ٹیکنالوجی میں نہیں۔