CRUD چیست؟ ایجاد، خواندن، ویرایش، حذف توضیح داده میشود
CRUD مخفف ایجاد، خواندن، ویرایش و حذف است — چهار کار پایهای که یک برنامه با داده ذخیرهشده انجام میدهد. افزودن یک مشتری جدید ایجاد است، مشاهده فهرست مشتریها خواندن است، تغییر شماره تلفنش ویرایش است و برداشتن او حذف است. بیشتر برنامههای کسبوکار — CRMها، سیستمهای رزرو، ردیاب موجودی، پنلهای مدیریت — عمدتاً CRUD هستند، با قواعد و یک چیدمان خوب روی آن.
چرا وقتی با هوش مصنوعی میسازید مهم است
CRUD واژگانی است که یک ایده مبهم برنامه را به یک درخواست دقیق تبدیل میکند. «یک برنامه برای مدیریت تأمینکنندههایمان» هوش مصنوعی را مجبور به حدس زدن میکند. «تأمینکنندهها را با این فیلدها ایجاد، فهرست، ویرایش و حذف کن» دقیقاً میگوید کدام صفحهها، عملیات پایگاه داده و مسیرهای سرور باید ساخته شوند.
همچنین یک چکلیست برای آزمایش به شما میدهد. برای هر نوع رکورد در برنامهتان میتوانید چهار پرسش بپرسید: آیا میتوانم یکی بسازم، آنها را ببینم، یکی را تغییر دهم و یکی را حذف کنم — و آیا فقط افراد درست میتوانند هر کدام را انجام دهند؟ تعداد شگفتانگیزی از برنامههای ساختهشده با هوش مصنوعی میتوانند رکورد بسازند اما ویرایشش نکنند، یا اجازه بدهند هر کسی هر چیزی را حذف کند.
یک تشبیه روزمره: جعبه کارتهای دستور پخت
یک جعبه کارت دستور پخت روی قفسه آشپزخانه را تصور کنید.
- ایجاد: یک کارت جدید بنویسید و در جعبه بگذارید.
- خواندن: جعبه را ورق بزنید، یا کارت لازانیا را بیرون بکشید.
- ویرایش: «۲۰۰ گرم پنیر» را خط بزنید و «۲۵۰ گرم» بنویسید.
- حذف: یک کارت را بیرون بیاورید و دور بیندازید.
حالا قواعد اضافه کنید: فقط سرآشپز میتواند کارتها را دور بیندازد، هر کارت باید عنوان داشته باشد، و کسی نمیتواند دو کارت با یک نام ثبت کند. این یک برنامه CRUD با اعتبارسنجی و مجوز است — که بیشتر برنامههای واقعی همیناند.
CRUD در هر لایه چطور دیده میشود
هر عمل در صفحه، سرور و پایگاه داده ظاهر میشود. کنار هم گذاشتن آنها خیلی از نحوه ساخت برنامهها را روشن میکند.
| عمل | روی صفحه | درخواست API (REST) | SQL در پایگاه داده |
|---|---|---|---|
| ایجاد | دکمه «جدید» و یک فرم | POST /api/suppliers | INSERT |
| خواندن | فهرست با جستوجو و فیلتر؛ صفحه جزئیات | GET /api/suppliers و GET /api/suppliers/42 | SELECT |
| ویرایش | فرم «ویرایش» یا ویرایش درونخطی | PUT یا PATCH /api/suppliers/42 | UPDATE |
| حذف | دکمه «حذف» با تأیید | DELETE /api/suppliers/42 | DELETE (یا علامتگذاری سطر بهعنوان حذفشده) |
صفحه همان فرانتاند است، درخواست API نحوه صحبت فرانتاند با بکاند است، و SQL نحوه صحبت بکاند با پایگاه داده است. اگر این واژهها برایتان تازه است، ببینید API چیست و پایگاه داده چیست.
یک مثال کامل: ردیاب امانت تجهیزات
بخش رسانه یک مدرسه دوربین و میکروفون به دانشآموزان امانت میدهد و مدام ردیابشان را گم میکنند. آنها یک برنامه ساده میخواهند.
رکوردها. دو نوع چیز: تجهیزات (نام، نوع، شماره سریال، وضعیت) و امانتها (کدام تجهیزات، کدام دانشآموز، تاریخ تحویل، تاریخ برگشت مورد انتظار، تاریخ بازگشت واقعی).
CRUD برای تجهیزات:
- ایجاد: کارکنان یک دوربین جدید با شماره سریالش اضافه میکنند. قاعده: شماره سریال باید یکتا باشد.
- خواندن: فهرست همه تجهیزات، قابل فیلتر با نوع و «هماکنون موجود»؛ یک صفحه جزئیات که تاریخچه امانت یک قلم را نشان میدهد.
- ویرایش: تغییر وضعیت به «نیاز به تعمیر».
- حذف: معمولاً حذف واقعی نیست. اگر دوربینی با ۳۰ امانت گذشته حذف شود، رکوردهای امانت پیوندشان را از دست میدهند. بهجایش آن را «بازنشسته» علامت بزنید تا از فهرست موجودیها برود، اما تاریخچهاش بماند. به این کار حذف نرم (soft delete) گفته میشود.
CRUD برای امانتها:
- ایجاد: یک تجهیز را به یک دانشآموز امانت بدهید. قاعده: نمیتوانید تجهیزی را امانت بدهید که از قبل امانت است.
- خواندن: «امانتهای سررسیدگذشته» — فهرستی که تاریخ تحویل گذشته و تاریخ بازگشت ندارد.
- ویرایش: وقتی تجهیز برمیگردد، تاریخ بازگشت را ثبت کنید.
- حذف: فقط کارکنان، برای امانتهایی که به اشتباه ثبت شدهاند.
مجوزها. دانشآموزان میتوانند آنچه موجود است را بخوانند؛ فقط کارکنان میتوانند ایجاد، ویرایش یا حذف کنند. این بررسیها روی سرور اجرا میشوند، نه فقط با پنهان کردن دکمهها.
همین کل برنامه است. بخشهای جالب — بدون امانت دوباره، فهرست سررسیدگذشته، تاریخچه برای هر قلم — قواعد و کوئریهایی روی CRUD ساده هستند.
واژههای کلیدی
- رکورد (سطر): یک قلم، مثل یک تأمینکننده یا یک امانت.
- موجودیت / منبع (Entity / resource): نوعی رکورد، مثل «تأمینکنندهها». هر کدام معمولاً جدول و مجموعه صفحات CRUD خودش را دارد.
- اعتبارسنجی (Validation): بررسی ورودی — فیلدهای الزامی، ایمیل معتبر، مقدار مثبت. هم در فرم برای راحتی و هم روی سرور برای امنیت انجام دهید.
- حذف نرم (Soft delete): علامتزدن یک رکورد بهعنوان حذفشده یا بایگانیشده بهجای برداشتن آن، تا تاریخچه و پیوندها باقی بمانند.
- صفحهبندی (Pagination): نمایش یک فهرست طولانی صفحه به صفحه، تا برنامه سریع بماند.
- گزارش ممیزی (Audit log): ثبت اینکه چه کسی چه چیزی را، چه زمانی ایجاد، تغییر یا حذف کرده.
- پنل مدیریت (Admin panel): مجموعهای از صفحات CRUD برای کارکنان تا دادههای برنامه را مدیریت کنند.
اشتباهات و برداشتهای غلط رایج
- فراموش کردن یکی از چهار عمل. برنامهها اغلب با ایجاد و خواندن ارسال میشوند اما بدون ویرایش، پس هر غلطاملایی یعنی حذف و وارد کردن دوباره. برای هر موجودیت هر چهار عمل را بررسی کنید.
- حذفهایی که چیزها را خراب میکنند. حذف مشتریای که فاکتور دارد ممکن است فاکتورهای یتیم بگذارد یا تاریخچه را پاک کند. برای هر موجودیت تصمیم بگیرید: حذف را مسدود کنید، حذف نرم کنید، یا رکوردهای مرتبط را هم حذف کنید.
- مجوزها فقط در رابط کاربری. پنهان کردن دکمه حذف جلوی کسی که درخواست
DELETEمیفرستد را نمیگیرد. سرور باید بررسی کند چه کسی درخواست میدهد. - ویرایش با شناسه بدون بررسی مالکیت. اگر کاربر A بتواند با تغییر یک عدد در آدرس
/api/notes/42یادداشت را ویرایش کند، ممکن است یادداشت کاربر B را ویرایش کند. هر ویرایش و حذف باید تأیید کند که رکورد متعلق به درخواستکننده است. - نبود تأیید هنگام حذف. یک اشتباه کلیک نباید داده را نابود کند. مرحله تأیید یا امکان برگرداندن بخواهید.
- «CRUD یعنی ساده، ساختنش نمیارزد.» بسیاری از محصولات ارزشمند برنامههای CRUD هستند که نسبت به یک ابزار عمومی با گردش کار بهتر تطبیق دارند.
از سازنده هوش مصنوعی خود چه بخواهید
این الگو را برای هر موجودیت، یکییکی به کار ببرید:
یک قابلیت تأمینکنندهها با فهرست، ایجاد، ویرایش و حذف بساز. فیلدها: نام (الزامی)، ایمیل تماس (ایمیل معتبر)، تلفن، دستهبندی (یکی از: غذا، بستهبندی، نظافت)، یادداشتها. نمای فهرست با جستوجو بر اساس نام و فیلتر بر اساس دسته، ۲۰ مورد در هر صفحه. قبل از حذف تأیید بگیر؛ اگر تأمینکننده سفارش دارد، بهجای حذف بایگانی کن. فقط کارکنان واردشده بتوانند ایجاد، ویرایش یا بایگانی کنند — این را روی سرور اعمال کن.
سپس هر چهار عمل را آزمایش کنید، هم با کاربر مجاز و هم با کسی که نباید دسترسی داشته باشد. وقتی یک موجودیت کار کرد، موجودیت بعدی را اضافه کنید. چطور یک ابزار داخلی بسازید نشان میدهد چطور صفحات CRUD به یک برنامه مدیریتی کامل تبدیل میشوند، و Postgres چیست پایگاه دادهای را توضیح میدهد که بیشتر این برنامهها روی آن قرار دارند.
برنامههای CRUD در Mythex
برنامههای CRUD یکی از کارهایی هستند که سازندههای برنامه با هوش مصنوعی بهترین کار را در آن دارند، و Mythex هم از این قاعده مستثنا نیست. در گفتوگو موجودیت و فیلدهایش را بخواهید؛ Mythex یک پایگاه داده Postgres به پروژه وصل میکند، جدول را میسازد و صفحات فهرست، فرم و جزئیات را در پیشنمایش زنده میسازد؛ سپس میتوانید /test را اجرا کنید تا جریان را بررسی کنید. مستندات یک دستور آماده برای برنامه CRUD همراه با یک پرامپت شروع دارند، و سازنده ابزار داخلی و قالبهای داشبورد جاهای خوبی برای شروع هستند.
پرسشها
CRUD مخفف چیست؟
CRUD مخفف create (ایجاد)، read (خواندن)، update (ویرایش) و delete (حذف) است: افزودن یک رکورد جدید، مشاهده رکوردها، تغییر دادن یک رکورد و برداشتن یکی از آنها. تقریباً هر برنامهای که داده ذخیره میکند از همین چهار عمل ساخته شده است.
برنامه CRUD چیست؟
برنامه CRUD برنامهای است که کار اصلیاش مدیریت رکوردها از طریق فرمها، فهرستها و صفحات جزئیات است، مثل CRM، ردیاب موجودی، مدیریت رزروها یا بخش پشتیبان یک سایت آگهی شغلی. بیشتر ابزارهای داخلی و پنلهای مدیریت، برنامههای CRUD هستند.
CRUD چه ارتباطی با APIهای REST دارد؟
در یک API معمولی REST، ایجاد از درخواست POST، خواندن از GET، ویرایش از PUT یا PATCH و حذف از DELETE استفاده میکند. سپس بکاند عملیات متناظر پایگاه داده را اجرا میکند: INSERT، SELECT، UPDATE یا DELETE.
آیا برنامه CRUD آنقدر ساده است که ارزشی نداشته باشد؟
نه. بسیاری از نرمافزارهای مفید کسبوکار CRUD هستند که قواعد خوب، مجوزها و گزارشها روی آن قرار گرفته. ارزش در مدلسازی خوب داده و تطبیق با گردش کار است، نه در فناوری غیرمعمول.